広告
広告
https://www.7key.jp/nw/tcpip/tciip.html#tcpip
インターネットでWebページをみる場合を考えてみてください。Webページというものも一つの情報(データ)です。しかし、みる側のパソコンにみたい情報が入ってるわけではありませんので、どこか別のところ(パソコンと思って下さい)からみたい情報を運んでこなければなりません。そのように、データを運んでくるために必要な約束事がTCP/IPと呼ばれるものです。もう少し専門的に言いますと、TCP/IPとはネットワーク上のデータのやりとりに必要なプロトコル(約束)、ということになっています。
もともとはアメリカの国防総省(DOD)の主導で DARPA【Defense Advanced Research Project Agency】という機関が設立され、国防のためのコンピュータネットワーク研究から生まれたプロトコルです。1981 年頃、カルフォルニア大学バークレイ校にて UNIX 4.1BSD にこのプロトコルを実装したことから、UNIX の標準通信プロトコルとして広がり、UNIX 以外のコンピュータでも標準的に使えるようになりました。現在では、世の中で最も普及した事実上の標準プロトコルとしての地位を築くにまで至っています。
https://www.7key.jp/nw/tcpip/tcpip.html#structure
今まで TCP/IP への説明を、さも単体のプロトコルのように話してきましたが、実は TCP/IP というものは1種類のプロトコルではなく、IP(Internet Protocol)を中心とした複数のプロトコルの集合として成り立ち、階層構造となっています。一つの例として、データを送信するときに、送信する端末内で行っている手順を紹介します。
階層構造になっているのは、上記例のようにそれぞれ機能を分離して、送信時は上位から下位へ、受信時は下位から上位へデータを受け渡すことにより、円滑なデータ通信又は通信設計を可能にするためとなっています。
OSI参照モデル | TCP/IPでの階層構造 | 主なプロトコル | 説明 |
---|---|---|---|
応用層 | 応用層 | SNMP,DNS, RIP,HTTP, FTP,SMTP, Telnet |
ネットワークを利用するアプリケーション |
プレゼンテーション層 | |||
セッション層 | |||
トランスポート層 | トランスポート層 | TCP,UDP | エラーの検出と訂正、ポート番号を定める |
ネットワーク層 | ネットワーク層 | IP,ARP,ICMP | データグラムの定義と経路制御、IPアドレスを扱う |
データリンク層 | データリンク層 | Ethenet,TokenRing, FDDI,ISDN,PPP |
物理ネットワークへのアクセス |
物理層 |
https://www.7key.jp/nw/tcpip/tcpip.html#protocol
では、実際に、TCP/IPがどのような方法でデータのやり取りを行っているのかを、上記 TCP/IPの参照モデルを踏まえて見てみましょう。例として、ブラウザのアドレス入力欄にURLを入力して、Enterキーを押したときを考えます。
Webブラウザがリクエストメッセージを作成します。作成されたデータは、OSのTCP/IP処理ソフトに渡されます。下層のトランスポート層にデータを渡すまでが、応用層の役目となっています。
次に、トランスポート層のTCPによってTCPヘッダが付けられます。このとき、受け取ったデータがMSS(最大セグメントサイズ)よりも大きい場合は、データを分割してそれぞれのデータにTCPヘッダを付けた後、IPへ送ります。これらの作業は、通信の際の誤り防止機能として働くものです。間違いなくデータが送られているかどうかのチェック機能と考えて下さい。
更に、ネットワーク層のIPによってIPヘッダが付けられます。これは、どのような経路を使用して相手にデータを送り届けるか、を決定するための重要な作業です。ARPとは、ルーティングテーブルの辺りが参考になるでしょう。作業が終われば、下位のデータリンク層へとデータを渡します。
MACヘッダが付けられた後、OSのTCP/IP処理ソフトはLANアダプタのデバイスドライバを呼び出します。そして、MACヘッダ以下のデータをLANアダプタに送ります。
LANアダプタが、同期用のプリアンブル信号とチェック用のFCS【Frame Check Seguence】を付け加え、電気信号に変換した後にケーブル上に送り出します。
以上のように、データを送信するときは、上位のプロトコルから順番に下位のプロトコルへ処理が引き継がれていきます。これとは逆に、受信側では、まず物理層にデータが入ってきますので、物理層から順番に上位の層へと処理が引き継がれていくことになります。このとき各層のプロトコルは、処理が終了すると自分が担当するヘッダを取り除いてから上位の層へデータを渡しますので、最終的には、アプリケーションソフト用のデータだけが応用層のプロトコルに渡されることになります。
広告