分パケットインターネットの全てのデータ通信は「パケット」と呼ばれる単位で行われています。パケットとは小分けにされたデータです。ある特定のファイルを転送しようと思ったとき,データは次のようにパケットに分割されて送信されます。パケットに分割されたデータは,次から次へとインターネットで送信されていき,宛先に届きます。一般的なパケットは,ヘッダとペイロードによって構成されます。ヘッダは,そのパケットに関する情報が掲載され,ペイロードは実際のデータを格納しています。パケットに関する情報には,例えば宛先やパケットの送信者情報などがあります。パケット転送パケットはルータと呼ばれる機器によって次から次へと転送されていきます(L2の場合はスイッチですが,話を簡単にするため割愛します⁠)⁠。インターネットの基本設計として重要なのが,ルータがあまり多くを気にせずに必要最小限しか考えないように出来ていることです。ルータは各通信の細かい内容や状態に関しては全く関知していません。到着したパケットのヘッダに記述してある情報を読み取って,「⁠次」へと転送するだけです。それぞれのルータは,実際の宛先への到達方法を知りません。「⁠こっちに転送すればどうにかなるよ」ぐらいの気持ちで,次へとパケットを渡します。バケツリレーのように転送されていったパケットは,最終的には目的地に到達します。現実世界に置き換えて説明この説明をもう少し噛み砕いてみましょう。パケットをトラックだと思ってください。トラックには運転席部分と荷台部分があります。運転席部分がパケットのヘッダで,荷台部分がデータを運ぶペイロードです。次に,光ファイバなどの回線は高速道路で,高速道路の分岐点がルータだと思ってください。トラックは高速道路を走ります。高速道路の標識には「あっちが東京」で「こっちが北海道」としか書いていません。運転席には「北海道」という宛先が書かれた紙があるので,トラックは「こっち」へ行きます。標識の例ここではトラックという比喩を使いましたが,実際のインターネットの挙動はトラックの場合とは異なるのでご注意ください。インターネットにおけるパケットはトラックのように自分で考えて道路を選択するわけではありません。高速道路の分岐点と例えたルータがパケットの次の行き先を考えたうえで,次のルータへとパケットを転送します。このように,例えとは微妙に違う動きをしますが,何となく感覚として「ルータは方向だけを知っていて実際の経路を毎回細かく考えているわけでない」ということと「パケットにはヘッダとペイロードがある」という部分がわかっていただければと思います。回線交換とパケット交換この「パケットにデータを分ける」という技術は非常に重要です。データを小分けすることによって,複数種類の通信を同時に行えるようになっています。パケットによるデータ通信はパケット交換技術と呼ばれています。パケット交換技術登場以前の世界では,通信は回線交換技術で成り立っていました。電話回線を構築していた回線交換技術では,通信ごとに「回線」を用意していました。そのため,同時に複数の通信を行えません。家に電話があるとします。誰かが電話をかけている時に同時に他の人が同じ電話回線で通話をする事はできません。インターネットであれば,家に来ているインターネット回線が1本であったとしても,複数台のコンピュータで同時にWebを閲覧したり,メールを見る事ができます。各アプリケーション用のデータが細かいパケットに分けられる事によって,複数の通信が多重化されつつ,1本の回線を利用しています。先ほど説明したパケットの転送は「フォワーディング」であり,出来上がったルーティングテーブルに記述してある情報を元に転送を行っているだけです。パケットの転送に関しては説明しましたが,「⁠じゃあ,どうやって目的地への方向を知るんだろうか?」という問題に関しては,ここでは割愛しています。このように「どっちに行けば目的地があるか?」を計算するのがルーティングです。ルーティングにはさまざまな段階や方式があるため,別途解説を行います。最後に今回は,インターネットを流れるデータの単位であるパケットについて解説をしました。説明を簡単にするため,ここでは漠然と「宛先」と書きましたが,実はこの「宛先」を表現するために「IPアドレス」というものがあります。次回は,このIPアドレスとは何かを解説します。ルーティング著者プロフィールあきみち「Geekなぺーじ」を運営するブロガー。プログラミング,ネットコミュニティ,熱帯魚などに興味を持っている。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。