shiisuke’s blog

文系卒。社会人5年目くらい。ITやプログラミングの勉強で学んだことを書きます。

プロトコルって何だろう?

Ⅰ.調べたきっかけ

  • ネットワークの仕組みについて勉強していると、「プロトコル」という言葉が何度も出てきました
  • この言葉は文系の私には馴染みがなく、理解するのが難しかったので、どんなものかを自分なりにまとめてみました

Ⅱ.(通信)プロトコルとは?1

  • コンピュータ同士がやり取りする際のルールのこと
  • たとえば、コンピュータAがコンピュータBにファイルを送る際には「FTP」というプロトコル(ルール)が用いられ、コンピュータAからコンピュータBにメールを送る際には「SMTP」というプロトコル(ルール)が用いられる

Ⅲ.なぜプロトコルが必要なのか

1.まずは身近な例で考えてみる

  • 私たちは、コンビニでパンを買うときに以下の手順を踏んでいる
    • 商品棚からパンを選び、レジへと運ぶ
    • 店員さんがパンのバーコードを読み取り、代金を読み上げる
    • お金をレジのカウンターに置く
    • 店員さんからおつりと商品を受け取る
  • もしも、この手順(ルール)が地域ごとに異なっていたらどうなるだろうか?
    • 大阪では、商品を受け取る時に店員さんへ「おおきに!!」と言わなければならない(言うまで商品をもらえない)
    • 沖縄では、お金の支払いは必ず手渡しで行わなければならない(カウンターに置くと無視される)
  • この場合、出張客や旅行客など、ローカルルールを知らない人はコンビニでパンをなかなか買えないだろう
  • このような不都合が生じないために、買い物をする際の手順は、地域(大阪、沖縄)やコンビニの種類(ローソン、ファミマ)などに関係なく決まっている

2.次に、ネットワークでファイルを転送する場合を考えてみる

  • コンピュータAがコンピュータBに(FTPを使って)ファイルを転送するとき、おおまかに以下の手順を踏んでいる
    • AとBが、命令するための通信が行える状態であることを互いに確認する
    • AがBにユーザIDとパスワードを送り、認証を行う
    • AがBに特定のファイルを送るよう命令するとともに、送り先を指定する
    • AとBが、ファイルを転送するための通信が行える状態であることを互いに確認する
    • BがAにファイルを転送する
  • もしも、この手順がコンピュータごとに異なっていたらどうなるだろうか?
    • BはAからファイルが転送されるのを待機しているが、AはBから「ファイルを受け取る準備ができたよ」という信号が来るのを待機している(野球やバレーボールでいう「お見合い」の状態)
    • AがBにファイルを転送したが、Aの認証ができていないためにBは受け取りを拒否した
  • この場合、いつまでたってもファイルを転送することができない
  • このような不都合が生じないために、「コンピュータ間でどのようにファイルを転送するか」というルール(=プロトコル)が決まっている

Ⅳ.誰がプロトコルを決めているのか2

  • プロトコルは以下のような組織によって定められている
    • IETF(The Internet Engineering Task Force、インターネット技術特別調査委員会):インターネットで利用される技術の標準を策定する組織。策定された標準仕様は最終的にはRFCなどとして発行される。
    • IEEE(Institute of Electrical and Electronics Engineers):通信・電子・情報工学とその関連分野を対象とする技術専門家組織。
    • ISO(International Organization for Standardization国際標準化機構):各国の国家標準化団体で構成される非政府組織。
  • 他に、デファクトスタンダード(特に決められているわけではないが、みんなが使っているので標準となっているもの)もある

Ⅴ.主なプロトコル3

名称 内容
IP(Internet Protocol) ネットワークを介してデータ伝送を行うためのルーティングや中継機能を提供するプロトコル
ARP(Address Resolution Protocol) IPアドレスからMACアドレスを求めるためのプロトコル
TCP(Transmission Control Protocol) データを送信する前に、送信側と受信側で論理的な通信路を確立するコネクション型の伝送を行うプロトコル
UDP(User Datagram Protocol) コネクションレス型の伝送を行うプロトコル
SMTP(Simple Mail Transfer Protocol) メールサーバ間のメール転送、クライアントからのメール送信を行うためのプロトコル
HTTP(HyperText Transfer Protocol) HTMLファイルを転送し、WWWを実現するためのプロトコル
DNS(Domein Name System) ドメイン名とIPアドレスを対応させる名前解決のサービスを提供するプログラム
POP3(Post Office Protocol Version3) メールサーバからメールを取り出すためのプロトコル
FTP(File Transfer Protocol) ファイルを転送するためのプロトコル
DHCP(Dynamic Host Configuration Protocol) TCP/IPのLANに接続されたコンピュータに、あらかじめ設定されたIPアドレスの範囲から未使用のIPアドレスを自動的に割り振るサービスを提供するためのプロトコル
IMAP4(Internet Message Access Protocol 4) メールをメールサーバに置いたまま管理するためのプロトコル
MIME(Multipurpose Internet Mail Extensions) メールで文字以外のデータ(画像や音楽)を添付して送るプログラム

Ⅵ.参考文献


  1. プロトコルの定義としては、「コンピューター同士が通信をする際の手順や規約などの約束事」(ASCII.jpデジタル用語辞典)、「コンピューター間で、データをやりとりするために定められた手順・規約。信号の電気的規則。送受信の手順など。通信規約。通信プロトコル」(goo国語辞書)などがある。

  2. Wikipediaを参照

  3. 技術評論社基本情報技術者のよくわかる教科書』p120-121を参照