FC2ブログ
--.--
--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

11.08
Sun
おひさしぶりです

来春からネットワークをいじるようになると思うので、
勉強のためにL3スイッチとルータを買いました。

購入したもの

12193423_693467614122037_6604511500764206935_n.jpg

CentreCOM 9424T/SP-ERTX1200

あと,PCとつなぐためのシリアルケーブルも持っていなかったので購入しました。

RTX1200に使うD-sub9 メス-メスのクロスケーブル
KRS-403XF3K

シリアルポートとか無いので、USBに変換. USB - D-sub9オス
BSUSRC0610BS

スイッチに使うきしめんケーブル
RJ45-DB9

これで設定できてます。
環境はLinuxMintですが普通につないだら/dev/ttyUSB0とかができて認識されました。
シリアル通信用のターミナルにはminicomを使ってます。


スポンサーサイト
comment 0 trackback 0
05.17
Thu
前回かなり抽象的に通信の仕組みについて書きました。

ので今回は、主にトランスポート層とネットワーク層に焦点をあてて

書いてみたいと思います。

前回のOSI参照モデルの話はここ

ではまずネットワーク層から。

ネットワーク層のすべきことはホスト間でデータのやり取りをするときに

そのデータを目的のホストまで届けることにあります

ここでのホストは必ずしも隣接している必要はありません。

ようするに別のネットワークやどこか物理的に遠くにあるホストでもいいということです。

ただしここでの通信には信頼性はありません。つまり、必ず相手に目的のデータが届くかというと

そうじゃないです。途中のルータによってデータが捨てられてしまうこともあるのです。

確実にデータを届ける仕事を担っているのは、別の層の仕事です(トランスポート層のTCPとか)

このことからネットワークはベストエフォート型であると言えます。(必ず届くかどうかはわからないけどできるかぎり届くように努力はしてみるよ的な)

そしてネットワーク層の代表的なプロトコルにはIP(Internet Protocol)というのがあります。(代表的っていうか、ほとんどこれが使われます)

これはIPアドレスの名で間違いなく聞いたことがあると思います。そのIPです。

ではIPはどのようにしてデータを届けるか。これは以前書いたのですが、IPアドレスというアドレスを使い

数々のルータをバケツリレーして目的のホストまでデータを届けます。前に書いてみたやつはここ

さてこれでホストまでは(目的のパソコンとかまでには)データを届けられるようになりました。

が、問題が残っています。普通パソコンの中ではネットワークを使うアプリケーションが複数動いてるはずです

メーラーとかブラウザろかいろいろと。そうしたときに目的のホストまではデータが届いたとしても

どのプログラムに実際にデータを渡してやればいいのか。

これを解決するのがネットワーク層の一つ上の層のトランスポート層です。

ここの層には代表的なプロトコルにTCPとUDPがありますが、

このふたつのプロトコルはどちらもポート番号という概念を提供します

このポート番号のおかげでどのプログラムにデータを渡せばいいのか識別することができます

たとえば、www.yahoo.co.jpにアクセスするときにブラウザが55234というポートを使って

サーバにアクセスしたとするとヤフーのサーバはそのアクセスしてきたホストのIPアドレスに加え

ポート番号の情報をのっけてデータを返します。

そうすることでコンピュータは返ってきたデータを自分の中で動いている適切なプログラムに渡せます

(サーバ側のウェブサイトのためのポートは普通80ですがクライアントがアクセスする場合は使うポートは自由です)


ちなみにUDPはほぼこれくらいの仕事しかしません。

つまりIPがホストまでデータを運んでくれてUDPはその到着したデータにプログラム識別用のポート番号を提供するぐらい。

ここでいえるのはUDPは信頼性のないプロトコルだということです。

なぜならIPに信頼性がないのにUDPは特にその部分を補っていないからです。

対してTCPはデータを確実に届けるためのたくさんの仕組みがあります

ですが決してTCPが優れているとかそういう話ではなく、

どちらも使いどころです。

たとえば、TCPは通信の制御のために複雑な処理をたくさん行います。

そうすることでデータのリアルタイム性は失われます。

ですがUDPはそうではないので、リアルタイムな通信に適しています。


ということで、ネットワーク層のIP、トランスポート層のTCPとUDPについてでした。

comment 0 trackback 0
05.15
Tue

/*
あああー。大学にきても宿題とかレポートとかあるんですねぇえええ(泣

いや、そういうのあるのは知ってましたけど結構頻繁にこんなに...ああああー

これじゃ高校とかわらないじゃないですかー....もっと自由だと思ってたのに---
*/


ということで、OSI参照モデルについて書いてみます。

OSI参照モデルというのは、ネットワークで通信をする時の構造というか、

どういう手段を用いて通信を行っているかの一般的なモデルを表したものと言うか

まぁそんな感じです。


例えば分かりやすく言うなら、僕らがメールを書いてて、

それで書き終わったら送信ボタンを押すと思いますけど、

その瞬間から相手のパソコンに届くまでにいったいどういう処理をされて

どんな感じで相手に届くかを規定したものであるといえます。多分こんな感じ。


さてOSI参照モデルですが、

これがその通信の規則みたいなものを定めたものです

例えばまたメールの例でいいますけど、

メールっていうのはSMTPというプロトコルに制御されています。

(プロトコルって??)

このSMTPというプロトコルを使えば、

そのメールが誰に届けなきゃいけないものなのかとか、

このメールのエンコーディングはなんなのかとか、

ファイルの添付の仕方はどうなのか

などが明確に規定され、僕らが送信したそのメールを受信した相手のメーラーは

それをちゃんと理解して、表示してくれるわけです。


ちなみに今説明したのはすべて、下の図でいうところの「アプリケーション層」あたりの仕事です


OSI_ref_mod.png


ではもっと下の層の説明をします.

ところで、ネットワークにつながるといのは

物理的なケーブルや無線を介しているわけで

通信をするということは、その媒体になにか信号を流さなきゃいけないってことです。

それは感覚的にわかると思います。

つまり、さっきの例に戻りますけど

ネットワークを介してメールを送信するためにはまだまだ

イロイロな準備が必要そうです。具体的に言うなら

そのケーブルやら無線やらに流しても大丈夫な信号に、

メールを変換してやらなきゃいけないということです。

変換しただけじゃだめで、それが確かに相手に届くように

してやらなきゃいけません。

そういった機能を提供しているのが、下位の層です。

大事なこととしては、このように各機能を提供するものが階層に分かれてる

ということです。

なぜ大事かというと、

プログラミングをする人なら簡単にわかると思いますが、

あるひとまとまりの機能を提供するものは

別の関数に分けたり、クラスにしたりしますよね?

間違ってもメイン関数の中にすべてを書くなんてことはしないと思います。

大きく言うならそれと同じだと思います。

そうすることで、プログラムの今後の保守性は増します。

またその関数を他の人が使うこともできます。

後に修正が生じた場合でも、その機能を提供する部分のみ

直せばいいので簡単です。

それがOSI参照モデルにも言えます。


今回はざーっと簡単に概要について説明してみました.

今度は実際にいろんなプロトコルを出して細部を説明してみたいとおもいまーす。

それではノシ


comment 0 trackback 0
03.22
Thu
続き↓



続きを読む
comment 0 trackback 0
03.21
Wed
続き↓続きを読む
comment 0 trackback 0
back-to-top
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。