プロトコルってなに?

プロトコルは「コンピュータの言葉」だとよく言われます。

英語しか話せない人と日本語しか話せない人とでは会話ができないように、
別々のプロトコルを持つコンピュータ同士ではデータをやり取りできないのです。

そういう意味で、プロトコルは「コンピュータの言葉」なのです。

例えば、インターネットでよく使われるプロトコルの一つにTCPがあります。

また、UDPというプロトコルもあります。

片方のコンピュータがTCPを、もう片方のコンピュータがUDPを使っているとすると、
この二つのコンピュータの間では意味のあるデータのやり取りがまったくできません。

それはちょうど、中国語の文章をアメリカ人が読むようなものですから。

こう考えればプロトコルもそう複雑なものではないのですが……
困ったことに、これを分かりにくくしている原因が一つあります。

それが、プロトコルが階層化しているということです。

「階層化」と言われてもピンとこないかもしれませんが、
また人間同士が会話をする状況を想像してください。

何語を使うかを決めるのももちろん必要ですが、
それ以外にも「声で話すか、筆談するか」などの条件も(厳密に考えれば)決めることになるでしょう。

また、日本語で話すにしても、大阪弁と沖縄弁では話が通じにくいかもしれません。

こういった問題を(まずは筆談か会話か、から)順番に決めていかないと、話を成立させることはできないでしょう。

これと同じことが、プロトコルでも起こっています。

プロトコルの階層はOSI参照モデルという形式で七階層に分けられており、
この全ての階層で同じプロトコルでなければ、コンピュータ同士でデータのやり取りをすることができません。

コンピュータは人間と違って融通がききませんから、一つでも違っているともう駄目なのです。

つまり、最大七つのプロトコルが一致しなければいけないわけです。

この「階層」の存在が、プロトコルを分かりにくくしている原因の一つと言えるでしょう。
(言葉に喩えるなら、「電話で、日本語の、現代語の、標準語の……」と七つの条件があるようなものです)