ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

若槻千夏さん、ブログ終了

2007-12-31 23:51:52 | Weblog

「マーボー豆腐は飲み物です」、終わっちゃうみたいです(;_;)

ここのブログ
報告。芸能人ではなく芸NO人だから挑戦したい事。決めた事。
http://ameblo.jp/wakatsuki/day-20071231.html

の最後のほうに(以下斜体は上記サイトより引用)

と共に、本日を持ちまして《マーボー豆腐は飲み物です。》を終了させていただきます。



えー(@_@!)
年の最後に、重大ニュース!!
ということで、年内に書きたかったので、とりあえず、ここでアップ


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ネットワークのキーワードまとめ-Web表示(4)

2007-12-31 16:39:00 | Weblog

 シリーズ「ネットワークのキーワードまとめ」の続き。

 前回、相手のルーターに行くまできましたので、今回は、相手側の処理




■相手側のルーター

<<物理層>>
 DSLなど線から送られてきた信号を、マンチェスター符号化などにより、
 0と1にして、フレームを作ります。

    ↓

<<データリンク層>>
 受け取ったフレームのヘッダ部分をはずして、パケットにして、
ネットワーク層に送ります。

    ↓

<<ネットワーク層>>
 送り先のIPアドレスをみて、
 そのサーバーに送るMACアドレスがわかっていれば、データリンク層へ
 わかってなければ、ARPを使って、IPアドレスからMacアドレスを割り出し、
 データリンク層へ

  ↓

<<データリンク層>>
 サーバーのMACアドレスを宛先MACアドレスとし、それ以外に必要な情報も付けて、
 フレームを作成します

  ↓

<<物理層>>
 データリンク層で送信するフレームを、マンチェスター符号化
などにより、0と1から電気や光の変化に変えて、線に流します。





■サーバー(相手からの情報を受ける)

<<物理層>>
 データリンク層で送信するフレームを、マンチェスター符号化
などにより、0と1から電気や光の変化に変えて、線に流します。

  ↓

<<データリンク層:NICカードなど>>
 受け取ったフレームのヘッダ部分をはずして、パケットにして、
ネットワーク層に送ります。

  ↓

<<ネットワーク層:サーバーOS>>
 パケットを受け取り、指定された宛先ポートに対して、
 トランスポート層へデータを送ります

  ↓

<<トランスポート層:サーバーOS>>
 TCPの場合、3ウェイ ハンドシェークを行い、シーケンス番号を、
取得できます。このシーケンス番号にもとづき確認応答をしながら、
必要なデータ(セグメント)を取得していきます。
 実際には、スライディングウィンドウを利用して、ある程度のまとまり
分、データを取り込みながら行います。

  ↓

<<セッション層:アプリケーションプログラム内>>
 アプリケーション側では、ここにあるように

1.アプリケーション起動時に、そのポートを開いて、
  データが送られてこないか、ずーっとまっています。

  ServerSocket serverSocket = new ServerSocket(ポート番号);

2.データが来ると、データを受け取り、コネクション(別の相手ごとに1コネクション=接続
  となる)ごとに、別のプロセスを発生させて、
  そこで入出力できるようにします。
  これによって(別プロセスになるので)同時に複数の通信が可能になります。

    Socket socket = serverSocket.accept();
    TestThread tr1 = new TestThread();
    tr1.setSocket(socket);
    tr1.start();


   ↓

<<プレゼンテーション層:アプリケーションプログラムのスレッド内>>
セッション層で、コネクションごとに送られてきたデータに対して、
コード変換などをかけます。

 InputStream is1 =socket.getInputStream();
 InputStreamReader ir1= new InputStreamReader(is1);
  

   ↓

<<アプリケーション層:アプリケーションプログラムのスレッド内>>
プレゼンテーション層で変換したデータを受け取り、解釈します

BufferedReader br1 = new BufferedReader(ir1);

 このbr1の内容が、送信された内容です。
 すなわち、ここで書いた、

GET / HTTP/1.0


(1.0のあとに、改行2つ。) 

が受け取れます。




次回は、受け取ったデータをもとに、サーバーから送信します。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする