top

サイト内検索

インターネットはどのようにつながっているのか2(データの流れ)

【データはパケットに分割して送信する】
 パソコン(PC)からインターネットに接続するまでのデータはどのような流れになっているのでしょうか。

 パソコン上のソフトウェアで作成したり取り込んだりした文字や画像などの情報は通信ソフトによってパケットに 分割されて図1のような階層ごとにその頭の部分(ヘッダ)に荷札のような情報(自分や相手先のアドレス、 元の文字や画像に復元するための番号など)が付け足された形で送信されます。 受信側はそのヘッダの情報を各層で読み取って送信側が指定した相手かどうかの認識をしたり、データの復元を行ったり しています。

(図1)


 パケットに分割するわけは大きいデータを送受信するような場合、少量のデータに分割したパケット単位で通信を行うことにより、 ネットワークの帯域を連続して占有することがなくなってネットワーク回線の負荷が軽くなったり、データの一部が破損・喪失 しても少ないコストで再送が可能になるなどの利点があるためです。

 図1のような処理はOSI参照モデルと呼ばれていてさまざまな通信のプロトコルの基本モデルとなっていますが、 その中でも世界標準といえるプロトコルがTCP/IPです。図2にOSI参照モデルとの対応を示します。

(図2)


【データの送信には約束事がある】
 電子メールでの通信を例にとってこのTCP/IPを説明します。
 まず、メールソフトを起動して新規メールを作成します。このメールに「こんにちは」と入力して送信ボタンを押すと、 TCP/IPによる通信が始まります。

 まず、アプリケーションプログラムでは「こんにちは」という文字列の符号化処理が行われます。 符号化されたデータはパケットに分割されて、下位層のトランスポート層のプロトコルであるTCPに渡されて 転送処理が行われます。

 TCPではデータの先頭にTCPヘッダが付けられます。このTCPヘッダには送信側端末と受信側端末のアプリケーションを 認識するポート番号(メールの場合は25番)やそのパケットが元の「こんにちは」というデータの何バイト目に当たるのか を表すシーケンス番号、データが壊れていないかどうかを確認するためのチェックサムといった情報が含まれています。

 次にTCPからインターネット層のIPにTCPヘッダ付きのデータが渡されます。このIPでは送信元や宛先の住所にあたる IPアドレスなどの情報が含まれるIPヘッダが追加されます。このIPパケットがを宛先までの経路を示すルーティングテーブル を参照して次にどのルーターや端末に送るべきかを決定します。そしてこのIPパケットにその下位層のネットワーク インターフェース層の代表的なしくみであるイーサネットのヘッダ(端末などの機器の識別番号にあたる送信元と 宛先のMACアドレスが含まれる)が追加されて、このパケットが電気信号となってケーブル伝送されるわけです。

 図3のようにIPは宛先までの通信経路を確保するのに対して、データリンクは機器と機器の1区間の通信を実現します。

(図3)クリックしてご覧ください


【受信したパケットは元通りに組み立てられる】
 受信した端末はまず、イーサネットヘッダの宛先のMACアドレスが自分宛であるかどうかを調べて、 自分宛であれば上位層のIPに渡されます。IPではIPヘッダの宛先IPアドレスが自分宛かどうか調べて、大抵は自分宛ではないので、 次に送信すべき端末やルーターをルーティングテーブルから調べて送ります。このようにIPではリレーのようにいろんな端末や ルーターなどを経由して最終的な宛先までパケットを送ることになります。

 最終的に宛先IPアドレスが受信した自分宛であった場合、上位層のTCPにデータを渡します。 TCPではTCPヘッダ内のチェックサムを計算してそのパケットが壊れていないかどうかを調べます。 ここで問題がなければポート番号を調べて通信を行っているアプリケーションを特定します。 データがきちんと届いた場合には送信元の端末に受信確認の応答をして、送信元ではこの受信確認が来るまで 繰返しパケットを送信します。

 最後にポート番号で識別したアプリケーションにデータが渡されて「こんにちは」という文字列に復元されパソコン のハードディスクに格納されたら、処理が正常に終了したメッセージを送信元のアプリケーションにとどけます。 以上が実際のデータの流れです。


■更なる学び情報の紹介

本サイトで紹介した様々な雑学から一歩深掘りして知識を習得できる教材を紹介します。現在では小学校でもプログラミングが必修科目となっているように、プログラミングに関する教材が、主にオンラインの講座として充実しています。普段プログラミングに縁のない方から、職業として専門的に学びたい方まで対象としている教材を紹介します。

(初心者向け)

プロから教わるプログラミング講座が1,000円から【ストアカ】 Excelを使った簡単なプログラミングから、CやHTML、pythonなどを使った初心者向けのオンライン講座が多数用意されています。1~2時間の講義およそ1,000~3,000円で受講可能です。
ユーキャンの全講座一覧 パソコンの使い方から、Excelやパワーポイントの使い方、ITパスポートといった資格取得などの初心者向けのテキストベースの通信講座が多数用意されています。1講座20,000~50,000円で受講可能です。
スキマ時間を有効活用できる【オンスク.JP】 Webページ制作やネットワーク、セキュリティに関する初心者向けのオンライン講座が用意されています。1講義は10分程度なので空いた時間に受講しやすくなっています。費用は月額980円で業界最安値のレベルです。通信講座に躊躇している方でもお試しの感覚で取り組みやすくなっています。
【ヒューマンの通信講座*『たのまな』】
全国にスクールがある『ヒューマンアカデミー』の通信講座。講座は250以上!
ビジネスに役立つITスキルとして、WORD/Excel/Power Point講座、DTP・Webデザイナー、プログラミングに必要となるプログラム用数学講座、ネットセキュリティに関する講座などが提供されています。費用は2~3万円が中心です。

(経験者向け)

世界最大級のオンライン学習サイトUdemy ウェブ開発、データサイエンスから、python、javascriptなどを用いたプログラミングまで20万以上のオンラインでのコースがあります。1コース当たり1,000円~30,000円程度で受講可能です。
現役エンジニアから学ぶならテックアカデミー 副業や転職を目的としてプログラミングを学ぶ方が主な対象です。現場で通用するレベルをゴールとしており、コース当たり10万~50万円で受講可能です。