情報を伝えるためには,出鱈目な手順では伝えたい情報が伝わらなかったり,誤って伝わったりします。
だから,そのために手順が必要だという事になります。
例えば人が情報を伝えようとする場合一番初めに考えるのは,
何によってその情報を伝えるかを考えます。
手紙にするか?電話にするか?電報にするか?(今は弔電や祝電ぐらいですね)
そういえば,30年以上昔のはなしなのですが,一社独占で法外な契約料と言う垣根の為僕が電話を持っていなかった時代のはなしです。
地元の友人が僕のアパートに遊びに来ることになっていたのですが,その当日の朝電報が来ました。
「**さん。電報です」
「?」
玄関の扉を開けると
「**さんですか?」
電報配達人は「ニヤニヤ」しながらフルネームでの確認はしない。
取りあえず「はい」
「祝電です」
「祝電?」
「はい」
ナンダなんだ。
受け取って,受け取り印を押し。
その宛先の名前を居ると。
「ヤヤヤ!」こりゃ読めませんぜ旦那!
名字は間違いなく僕なのですけど,名前の方がSLANGになっておりまして,
ここでちょっと記入するのに差し障りがある様な・・・。
確かに祝電の表紙になってる。
表紙を開いて内容を見てみると。
「イケナクナッタ,レコードタノム。**」(**は僕の名前)
「は~?何で祝電なの」
早速今はほとんど価値の失くなってしまった,テレホンカードを片手に公衆電話へ。
電報の差出人の友人に電話をかけてみたところ。
車が故障して行けなくなったので,頑張って電車で帰省してきな。待ってるぜ!くれぐれもその際レコードを忘れないように。
レコードの下りは電報で判ったけど,来れなくなった理由が電話で判明。

様々な問題は有りますが,通信手段の選択は間違っていなかったようですけど。

つまり人と人との通信においては,分からなければ通信方法を変えて確認できるし。
声色や前後の文脈で内容を想定することがある程度可能です。
コンピューターの場合はそうはいきませんよね。
それが,人で言えば共通言語だし,コンピューターの世界では『通信プロトコル』なのです。
夜中の電話で何やら訳の分からない事をしゃべり始めて。
「ハ?どちら様ですか?」って聞いたら。
「オメ~ダレヤ?」って言う電話はいくら共通言語であるところの日本語で話していても論外ですけどね。
「今日コネノスカ~」
「**ちゃんゲ?」
「・・・・・・」
って言うのもあります。前者に比べればかわいいもんですけど。
やはり
「どこに掛けたのか確認しろ~。お前は誰だ名を名乗れ~」
と切に思います。

通信手段の選択をします。
そして,たまたま電話を選択したとしましょう。
で受話器をとり「プー」って音で通話ができることを確認。
正確な電話番号の入力。
電話を掛けるにしても,呼び出し音が鳴って,相手が電話を取るまで通信できません。
たとえ通話ができる状態になったとしても,相手が情報のやり取りをしたい本人であるかどうかまだ解らない状態です。
ですから相手が電話を取ったのを確認して。
「**様のお宅ですか」
ここで,で自分の入力した電話番号が間違っていないかの確認をしてます。
「はいそうですが。どちら様ですか?」
「〇〇ですけど,△△さんいらっしゃいますか」
情報伝達相手の特定ですね。
そして会話・・・情報の伝達。
情報の伝達が終わり終了処理の挨拶と,受話器を置いて終了。
これが日常の電話でのやり取りになりますね。

通信においてもこのような手順があるという事です。
それが『通信プロトコル』

上記の電話のやり取りには重要な情報がたくさん詰まっています。
  1. まず一番初めに通信の手段,電話を選択しました。
    本当はその前に電話会社との契約があり,契約に基づき電話会社が工事を行い物理的に繋がってないといけませんけど。

  2. 正確な電話番号の入力と共通言語で接続後の確認。

  3. 情報の伝達をしたい相手の特定を名前の確認で行う。
    直接人と人が情報交換をする場合でさえ,常識的に交わす会話です。

  4. そして情報の伝達と正確に伝達されたかの確認。
    そして通信を終えるわけです。

そんな一連の流れは,どんな通信手段においても,どんな通信方式行おいても,適用される手順だと言う事です。

上記の電話のやり取りは,情報表現の4つの構成要素から成り立っています。
構成要素  1.伝送路の物理条件  2.伝達  3.相手の特定  4.情報表現
  1. 伝送路の物理条件
  2. 電話会社との契約と工事が終了し物理的に繋がる。
    【参考】
    伝送路とは,通信ケーブルやケーブルを接続するコネクターや電気的特性(電圧レベル,光学波長、変調方式が規定。無線通信の場合は、周波数帯や変調方式)が規定されている部分を言います。


  3. 伝達
  4. 電話番号の入力と共通言語で接続後の確認。
    人対人の場合は,主語が無くても相手の目や動作を見て,「あ~,自分に対して問いかけてるんだな」ってわかりますが。通信の場合は,その通信文の配列を決めてあげないと受け側は何を言ってるかわからなくなる訳です。

    【参考】
    伝送手順や伝達方式が規定されている。通信プロトコルの中核をなす決まり事が規定されている。信号にどのように「1」と「0」を割り当てるのかといった「符号化コード」から始まって,「同期」。「アクセス制御」,「誤り制御」,「フロー制御」等の規定が含まれる。


  5. 相手の特定
  6. 情報の伝達をしたい相手の特定を名前の確認で行う。

    【参考】
    プログラムでポートを用いて通信するには、一般にソケットと呼ばれる仕組みを用いる(ソケットはBSDで開発されたため、特にBSDソケットとも呼ぶ)。
    ソケットとは通信の端点のことで、2台のコンピュータが通信しているとき、その通信路の両端、すなわちそれぞれのコンピュータにソケットが存在する。
    また、ソケットのインターフェースやソケットを扱うライブラリプログラムも併せてソケットと呼ぶこともある。
    ソケットって何?
    ソケットは電話器であり郵便ポストです。
    ソケットに送信相手が情報を書き込むと通信相手のソケットに情夫が届きます。
    そして,通信相手はそのソケットからデータを読み出すだけでいいのです。
    このソケット同志を繋ぐことが出来ればコンピュータ同士がどのようにデーター通信してるかは考える必要はない事になります。


  7. 情報表現
  8. 情報の伝達と正確に伝達されたかの確認。

    【参考】
    ビットの羅列を有効な情報として通信するために、情報の表現ルールを相互に取り決める必要がある。
    ビットの区切り単位として古くは6ビットや7ビットで1つの文字を表現していたが、今では多くが8ビットで区切られたASCIIコードを文字コードとして使っていることが多く、日本ではシフトJIS等も使用される。
    また、いくつかの文字の組み合わせでコマンドとする取り決めや、送信する内容、つまりデータそのものの表現方法も取り決めておかなくてならない。
    こういった情報の配置と構成に関する表現ルールがパケット・フォーマットやフレーム・フォーマットといった形で、詳細な取り決めが規定される[1]。
    非接触型ICカードは、リーダ・ライタからキャリアを送信して電磁誘導によりICカードに電力を供給し、キャリアの変調によりリーダ・ライタとカード間で通信を行う。

(一部:Wikipedia:通信プロトコルより)


[1]

HDLC(High-Level Data Link Control)フレームの例


hdlcフレーム

F : 開始フラグ
フレームの開始
A : アドレスフィールド
相手の名前
C : コントロールフィールド
相手局に対しての動作の指令や応答。
連続で送るためのフレームのシーケンス番号(何個目のフレーム)
送信終了や送信要求信号。
I  : 情報フィールド
伝達する情報
FCS : フレームチックシーケンス
正確に伝わったことの確認
F : 終了フラグ
フレームの終了

ビットとは?