はじめに
こんにちは。管理人のシンヤです。
今回は、ネットワーク上でデータのやり取りをするために必要な『パケット』というものについて解説していきます。
では、改めて『パケット』とは何なのでしょう?
結論から言えば、パケットとは『データを分割し、さらに小さくしたデータのひと固まり』のことです。
超低速時代のネットワーク環境は、データの送信が大変だった
今ではちょっとした空き時間でも、個人でPCやスマホでインターネットを利用するのが当たり前になりました。
光回線がこれだけ普通に整備されていることを考えると、おそらく世界中のインターネット回線には、私たちが考えられないほどの膨大な量のデータが流れていることでしょう。
ところで、ひと昔前の話をすると、このような大量のデータを流すことは当時は全くできませんでした。
光などのデジタル回線が生まれる前は、ダイヤルアップというアナログの電話回線を使った通信だったからです。
その回線速度はわずか『56kbps』という超低速です。
メガじゃないんですよ?キロビービーエスですよ?
そして、Windowsが普及し始めた頃に開始された『ISDN』という技術もありましたが、それでもまだまだ『64〜128kbps』という低速回線でした。
この低速状態をイメージすると、テキスト主体のWebサイトですら表示速度が遅く、少しでも画像があればその表示にはとても時間がかかるというものでした。
今は瞬間的に送れるデータの送受信なども、当然ながらその当時は時間がかかるものであり、この頃は誰もが我慢を強いられていたものです。
私も相当圧縮をかけられた画像を、ゆっくり上から下にかけて表示されていくのを黙って見ていた時期がありました。
と、そんな思い出話は置いておいて、このように回線速度も遅かったわけですから、データそのものをそのままネットワーク上に送信するということは得策ではないのが分かりますよね?
したがって、ネットワーク上でのデータをやり取りをするためには、それを解決するための仕組みが必要で、それが『パケット』というデータの扱い方になるわけです。
あ、もちろん過去の時代からデータ通信はパケットによる通信でしたが、それでも超低速の回線だったのでとにかく何でも遅かったということはお間違いなく。
データを細かく分割する『パケット』とは?
『パケット』とはデータを分割したもので、難しく言うと『PDU(Protocol Data Unit)』というデータ単位のことを指します。
ただ、PDUという言葉よりもパケットという言葉の方が、ネットワーク内で送受信するデータという意味で定着しているという感じになっています。
このパケットのイメージは、ジグソーパズルを思い浮かべると早いです。
ジグソーパズルの完成した状態が1つのデータだとすると、それぞれのピースがパケットにあたります。
では、なぜ分割する必要があるのでしょうか?
その理由は、ネットワーク上でデータを円滑にやり取りをするためです。
データは、大きければ大きいほど、その回線を占有することになってしまいます。
すると、回線の帯域がそのデータだけで使われてしまうので、他のデータが送信できず利用者全員が困ることになってしまいます。
それを回避するためには、大きいデータを流さないようにしなくてはなりません。
しかし、そのような制限を設ければ今度はユーザーの利便性がなくなってしまいます。
そこで、小さくても大きくても、どのようなデータであろうが細かく切って小さくしてしまい、ネットワーク回線を占有せずに円滑に送受信をおこなえる仕組みにしたのがパケットというわけです。
そして、ネットワークではパケットによる通信方式でデータを送受信しています。
復元が可能な『パケット』という仕組み
パケットにより、データを分割するのとその理由は分かりましたが、それが相手に送られたあとは一体どうなるのでしょう?
全部バラバラな状態でしょうか?
いえ、そんなことはないですよね。
あなたに送られてきたテキストや画像がそんなことにはなっていないと思います。
つまり、バラバラになったデータはきちんと復元されているわけです。
そうなると、どうやって復元されているかが気になりますよね?
そこがパケットの面白いところです。
始めにデータをパケットにする際に、それぞれを細かくしますよね。
そして、その細かくなったデータに、新たに別のデータを付け加えるのです。
別のデータとは『ヘッダ』というものです。
ヘッダには複数の情報が入っており『データの種類』『宛先』『送信元』『パケットサイズ』などが含まれています。
そして、これらを分割されたデータに全て付けて送信すると、受信側はなんとそのヘッダ情報を解析してデータを元どおりに復元してくれるのです。
ちなみに、このデータのパケット化はユーザーが何かをする必要はありません。
テキストを送るにも、画像を送るにも、あなたが持つクライアントのアプリが全て自動的におこなってくれています。
つまり、私たちが知らない間にデータは分割され相手に送られますが、それがジグソーパズルの完成品ができていくように、元に戻る光景は残念ながら見ることができないのです。
データの『パケット化』によるメリット
メリット1:送信エラーへの対策
データは1つのかたまりであり、大きければ大きいほど回線を占有します。
そしてデータをネットワークに流して誰かに送るということは、その回線環境も影響するので、そもそもエラーが出やすいものになります。
つまりエラーが起きることを前提で考えると、1つのデータを送って、それにエラーが発生してしまえば再度送り直す必要が生じてしまいます。
これでは、送る方も送られる方も大変不便です。
それを回避するのにパケットだと効率が大変良いわけです。
パケットの場合、分割されたデータが送信中に途中で欠損しても、全体を再度送り直す必要はなくそのパケット部分を送り直すだけで済むからです。
メリット2:回線の共有化
あなたが通る道路を誰かが塞いで、我がもの顔で使っていたらあなたは困りますよね?
それと同じで、ネットワーク回線も一人だけのものではなく、複数のクライアント(PCやスマホなどの端末)と利用者全員で使えるものであるべきです。
従って、その回線を大きく占有することは認められません。
パケットであればデータが細かくされ、複数のクライアントとも回線を共有しつつデータの送受信が可能になります。
メリット3:データ送信の効率化
ネットワーク内でデータを送るにも、実は回線の状況は刻一刻と変わっています。
それは通勤時間は渋滞し、それ以外の時間は空いている道路のように、多くの利用者が使っていたと思えば、誰も使っていない時間帯もあります。
そんな回線利用数の度合いを見越したパケットであれば、1つのデータを送信するよりも、うまく回線の空き状況に合わせた送信ができます。
回線にとっても効率的な流れを作ることができるわけです。
まとめ
パケットというデータの扱いに関して何となく掴めたでしょうか?
今では光回線が当たり前になったので、もう超低速時代の技術は使わなくても〜的なことが思い浮かびますが、実はパケット自体がなくなることはありません。
どんなに回線速度が高速になったとしても、それを扱う利用者がさらに大きなデータを使えば同じだからです。
また、技術的にパケットの扱いによるデータ通信という仕組みが完成されているので、もはやそれを変えることに意味がありません。
パケットを日々気にすることはありませんが、データを送る際には、今みじん切りにされて送られたんだなと思うとちょっと面白いかもしれません。