7階層分かってるけどわからない。
OSI7 階層で、アプリケーション層から物理層に向かってヘッダが付加されてデータが通信されるのはわかりますが、どうも、よくわからないのがそのヘッダを付加するのがどこで行われているのか?なんですがたとえばwindowsでTCP/IPがインストールされているとネットのつながったPCの場合まず、はいってきたひとつのデータはOSを通ってTCP/IPの通信ソフト?に行ってそこですべてが行われるのでしょうか?また、あるアプリケーションがデータを送るときは、やはりOS経由でTCP/IPの通信ソフトに渡されてそこでデータの分割なりすべてのことを行ってOSに渡されてそとに出て行く感じなんですかぁ?なんとなくよくわかりにくいです。つまりそのヘッダを付加すると言うのがすべてTCP/IPの通信ソフトないのことなんでしょうか?C,C++の素養はあるのですが、通信をするソフトは作ったことがないのでよく分かりませんが、ある通信を伴うアプリケーションをプログラムしたときはアプリケーション側で書くのはあくまでもデータを送った受けた程度でヘッダの付加とかそういうのはすべてTCP/IPのソフトでの作業になるんですかぁ?
また、あるルータでルータにデータが入ってきた時まず、たとえばシスコならシスコIOS?のルータのOSにデータが行ってそから処理が行われるんですよねぇ?でその中で決められたいろいろなプロトコルを使ってヘッダの修整なりが行われてデータが出て行ったりするわけですよね?
かならずネットワークの本で最初にでてくるのが7階層なんですがでいきなり7階層の役割から入るのですがこれって実はすごく全体象が分かりにくくなるような気がします。なんで分かりにくいのがを説明するのに困りますが、7階層ってあるただのあるビット幅なのですべてが一意に決まりますよねそのビット列にどういう意味をもたせるかただそれだけなんですよね?で、その定義されたビット幅に書き込んだり読み取ったりするのがTCP/IPの通信ソフトになるんですよねぇ?アプリケーション層といっても別にあるアプリケーションが直接そのアプリケーション層のヘッダに書き込むことはないですよね?そういうプログラムをしてもそれはあくまでも間接的ですよね?そう言う風にプログラムしてそれを通信ソフトのTCP/IPが実際に通信するときにそのプログラムにしたがって書き込むって感じなんでしょうかぁ?
また、あるデータが大きいので分割するときにTCP/IPソフトが大きいから分割をして最初に送ったのと後に送ったとので区別するためにある層のヘッダに番号を振ったと思いますが、それもTCP/IPソフトが行ってることなんですよね?
なんとなく自分でもうまくまとめられないんですが・・・( ^.^)( -.-)( _ _)
コメント
『完全理解TCP/IPネットワーク』の第1章に解説があります
TCPヘッダ,UDPヘッダ,IPヘッダ,MACヘッダはOSが付加します。
それ以外のヘッダはアプリケーションが付加します。
というか,アプリケーションの部分はOSIと現実のシステムは根本となる考え方が違います
『完全理解TCP/IPネットワーク』の第1章で,
Java言語で書いた100行程度の簡単なサンプルプログラムを例として,
その辺を解説しています。
そちらが参考になると思います。
>かならずネットワークの本で最初にでてくるのが7階層なんですが
OSI階層モデルは現実のシステムを反映したものではありません。
特に,第5層(セッション層)より上は,現実のシステムとは
発想が全く異なるので,役に立ちません。
確かに,基本的な考え方の部分の中には,
今のネットワークにも適用できるところもありますが,
現実と違うものに捉われていると,現実の理解を妨げるので,
OSIのことは忘れた方がよいと思います。