「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

3ウェイハンドシェイク

pointこの用語のポイント

point接続のやり方だよ

point「データを送っていい?」「いいよー!こっちからも送っていい?」「いいよー!」な手順を踏むよ

pointTCPで採用されている やり方だよ

スポンサーリンク

簡単に書くよ

3ウェイハンドシェイク(読:スリーウェイハンドシェイク 英:three-way handshake)とは

「TCP」と呼ばれるやり方で通信するときに使われる接続のやり方
であり

「こっちから何か送っても、いいかなー?」(質問)「いいともー!こっちからも送って、いいかなー?」(返事&質問)「いいともー!バッチ来いや~!」(返事)の3回のやり取りをして接続するやり方
です。


image piyo

詳しく書くよ

サクっと一言で説明すると

データを送るよ」「OK。こっちも送るよ」「OK」の3回のやり取りを経て接続を確立する

のが「3ウェイハンドシェイク」です。

3ウェイハンドシェイク

……と、いきなり言われても分からないですよね。
大丈夫です。
順番に説明します。

例えば、そうですね。

ピヨ太君が、ぼーっとしていました。

3ウェイハンドシェイク2

ピヨ子さんも、ぼーっとしていました。

3ウェイハンドシェイク3

ピヨ太君はピヨ子さんと お話がしたいです。
そこで、ピヨ子さんに「しゃべっても いいかな?」と聞きました。

3ウェイハンドシェイク4

ピヨ子さんは「いいわよー」と答えて、ピヨ太君の話を聞く態勢に入りました。
ついでに「私も、しゃべって いいかしら?」と聞きました。

3ウェイハンドシェイク5

ピヨ太君のつまらない話を聞くだけでは眠くなりますからね。
自分もしゃべりたいと思ったのでしょう。

ピヨ太君は「いいよー」と答えました。
そして、ピヨ子さんの話を聞く態勢に入りました。

3ウェイハンドシェイク6

これでピヨ太君もピヨ子さんも、しゃべる許可を相手からもらいました。
お互いの話を聞く態勢も整っています。
楽しく ぺちゃくちゃ おしゃべりできるでしょう。

3ウェイハンドシェイク7

このようなやり方で接続を確立するのが3ウェイハンドシェイクです。

1.「しゃべっても いいかな?」
2.「いいわよー」「私も、しゃべっても いいかしら?」
3.「いいよー」


の3回のやり取りを経て、やり取りできる通信できる)状態を作ります。

実際のところ、これだけです。
難しくないでしょ?

それでは、ちょっとだけ応用編です。
実際のコンピュータの世界のやり取りに置き換えて見てみましょう。

コンピュータ同士のやり取りでは意思疎通にパケットを使います。
パケットは「通信用に細切れにしたデータ」ね。
よく分からない人は「通信中のデータ」くらいの理解でも かまいません。

3ウェイハンドシェイク8

やり取りするパケットの中には「SYN」と呼ばれる目印と「ACK」と呼ばれる目印が くっついています。
この目印が大事です。

SYNは「送っていい?」な質問用の目印だと思ってください。
SYNが「1」のパケットは「送っていい?」な質問のパケットです。

3ウェイハンドシェイク9

ACKは「いいよー」な返事の目印だと思ってください。
ACKが「1」のパケットは「いいよー」な返事のパケットです。

3ウェイハンドシェイク10

それを踏まえて、ピヨ太コンピュータピヨ太PCがピヨ子コンピュータピヨ子PCに接続するまでの流れを見ていきましょう。

まずはピヨ太PCの出番です。

ピヨ太PCピヨ子PCに対して「送っていい?」な質問をします。
「SYN=1、ACK=0」になっているパケットを送りました。

3ウェイハンドシェイク11

次はピヨ子PCの出番です。

質問を受け取ったピヨ子PCピヨ太PCに対して「いいよー」な返事をします。
「SYN=0、ACK=1」になっているパケットを送ることにしました。

あと「私も送っていい?」な質問をします。
「SYN=1、ACK=0」になっているパケットを送ることにしました。

実際に送ろうとしたピヨ子PCは気付きました。
「SYN=0、ACK=1」な返事と「SYN=1、ACK=0」な質問は合体させられそうです。
「SYN=1、ACK=1」にすれば、返事と質問が一緒に伝わるはずです。

2回も送るのは面倒くさいです。
合体して1回で送ってしまいましょう。

ピヨ子PCピヨ太PCに対して「SYN=1、ACK=1」になっているパケットを送りました。
「いいよー」な返事と「私も送っていい?」な質問を一度に送ったのです。

3ウェイハンドシェイク12

最後は、またピヨ太PCの出番です。

質問を受け取ったピヨ太PCピヨ子PCに対して「いいよー」な返事をします。
「SYN=0、ACK=1」になっているパケットを送りました。

3ウェイハンドシェイク13

これで2人とも相手から「送っていいよー」な許可をもらいました。
相手から送られてきたデータを受け取る心の準備もバッチリです。

この状態は「接続が確立された状態」と言えそうです。
ピヨ太PCピヨ子PCは通信できるでしょう。

3ウェイハンドシェイク14

めでたし、めでたし。

実際には、もう少し複雑ですけどね。
これが基本的な考え方です。

1.送っていい?
2.いいよー!送っていい?
3.いいよー!


の3回のやり取りを経て、接続を確立します。
そのときに、やり取りするデータは

1.「SYN=1、ACK=0」のパケット
2.「SYN=1、ACK=1」のパケット
3.「SYN=0、ACK=1」のパケット


です。

3ウェイハンドシェイク15

なお、3ウェイハンドシェイクはTCPの話で よく出てきます。
TCPでは、3ウェイハンドシェイクで接続するからです。
TCPの詳細については、用語「TCP」の説明を ご覧ください。


image piyo2

一言でまとめるよ

まぁ「3ウェイハンドシェイク」って単語が出てきたら「『送っていい?』『いいよー。こっちも送っていい?』『いいよー』な手順を踏む接続のやり方なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像067
書籍画像056

おまけ

■訳してみるよ

3は「3」ですね。
「way(ウェイ)」の意味は「道」とか「方向」とか「方法」とか「やり方」とかです。
「handshake(ハンドシェイク)」の意味は「握手」です。
何となく くっつけると

3方向握手

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
「定年力」の鍛え方 老後の毎日を最高にする方法
タヌキとキツネ