FINパケット
「バイバイするねー」な連絡パケットだよ
3ウェイハンドシェイクやTCPにおける接続を切る話で出てくるよ
ACKフラグも1だったりするよ
簡単に書くよ
FINパケット(読:フィンパケット 英:FIN packet)とは
「私たち、もう終わりにしましょう」パケット
(通信用に細切れにされたデータ)のこと。
もう少し真面目ぶって書くと
「3ウェイハンドシェイク」と呼ばれるやり方で接続していたのを止める(切断する)ときにやり取りされるデータのひとつ
であり
「切断するねー、バイバイ」な連絡に相当するデータ
です。
ちょっと小難しいけど正確に書くと
FINフラグ(とACKフラグ)に1がセットされたパケットのこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「パケット」と「3ウェイハンドシェイク」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
パケットは「通信用に細切れにしたデータ」です。
突然ですが、フランスパンを食べるところを想像してみてください。
一本丸々咥えたら息が詰まりますよね?
ですから、フランスパンを食べるときは、ちぎって少しずつ食べます。
通信も同じです。
一度にまとめて送ろうとすると、線が詰まってしまいます。
いえ、もしかしたら詰まらないかもしれませんが、なんか大変そうです。
そこで、通信するときは一旦データを細かく分割してから送ります。
細切れになって送られたデータは受け取り側で元の形に復元されます。
このときの
送るために細切れにしたデータ
がパケットです。
3ウェイハンドシェイクは「送っていい?」「いいよー。こっちも送っていい?」「いいよー」な手順を踏む接続のやり方です。
例えば、ピヨ太コンピュータ(ピヨ太PC)がピヨ子コンピュータ(ピヨ子PC)に接続するとしましょう。
まずはピヨ太PCがピヨ子PCに対して「送っていい?」な質問パケットを送ります。
それに対して、ピヨ子PCはピヨ太PCに「いいわよー」な返事パケットと「私も送っていい?」な質問パケットを合体させたパケットを返します。
それに対して、ピヨ太PCはピヨ子PCに「いいよー」な返事パケットを送ります。
お互いに相手から「送っていいよー」な許可をもらいました。
相手から送られてきたデータを受け取る心の準備もバッチリです。
この状態は「接続が確立された状態」と言えます。
このような
1.「送っていい?」な質問パケットを送る
2.「いいわよー」な返事パケット+「送っていい?」な質問パケットを送る
3.「いいよー」な返事パケットを送る
の3回のやり取りを経て接続を確立させるのが3ウェイハンドシェイクです。
以上を踏まえて、読み進めてください。
始まりがあれば終わりもあるのが世の常です。
ピヨ太PCがピヨ子PCとの接続を止める(切断する)ことにしました。
接続するときのやり取りは3回でした。
切断するときは4回やり取りします。
「3ウェイハンドシェイク」に対して「4ウェイバイバイ」なのです。
ちなみに「4ウェイバイバイ」は私が今、思いつきで作った造語です。
実際には、そんな用語は ありません。
ご注意ください。
話を戻して、まずはピヨ太PCがピヨ子PCに対して「バイバイするねー」な連絡パケットを送ります。
それに対して、ピヨ子PCはピヨ太PCに「いいわよー」な返事パケットを送ります。
次にピヨ子PCがピヨ太PCに対して「バイバイするわね」な連絡パケットを送ります。
それに対して、ピヨ太PCはピヨ子PCに「いいよー」な返事パケットを送ります。
これでお互いがバイバイすることに同意しました。
気持ちよく切断できます。
この4ウェイバイバイでやり取りされた
1.「バイバイするねー」な連絡パケット
2.「いいわよー」な返事パケット
3.「バイバイするわね」な連絡パケット
4.「いいよー」な返事パケット
のうち
1.「バイバイするねー」な連絡パケット
3.「バイバイするわね」な連絡パケット
が「FINパケット」です。
あと、ついでなので書いておくと
2.「いいわよー」な返事パケット
4.「いいよー」な返事パケット
は「ACKパケット」と言います。
3ウェイハンドシェイクはTCPの話で よく出てきます。
TCPでは、3ウェイハンドシェイクで接続するからです。
それに伴い、FINパケットの話もTCP(の切断)の話で よく出てきます。
TCPの詳細については、用語「TCP」の説明を ご覧ください。
以上で、ざっくりとした説明は終わりです。
なんとなく分かれば満足な人は、ここから先を読む必要は ありません。
次は、ここまでの説明と同じ内容を、もう少し細かく説明してみます。
先ほど同様、ピヨ太PCがピヨ子PCにバイバイするとしましょう。
やり方は4ウェイバイバイです。
まずはピヨ太PCがピヨ子PCに対して「バイバイするねー」な連絡パケットを送ります。
このとき送られるのは「FIN=1、ACK=1」のパケットです。
FINは「バイバイするね」な連絡用の目印だと思ってください。
FINが「1」のパケットは「バイバイするねー」な連絡のパケットです。
ACKは「いいよー」な返事の目印です。
ACKが「1」のパケットは「いいよー」な返事のパケットです……が、とりあえず気にしないでください。
次に、ピヨ子PCはピヨ太PCに対して「いいわよー」な返事パケットを送ります。
「FIN=0、ACK=1」のパケットです。
これで、ピヨ太PCはピヨ子PCからバイバイする許可をもらいました。
次はピヨ子PCの番です。
ピヨ子PCはピヨ太PCに対して「バイバイするわね」な連絡パケットを送ります。
このとき送られるパケットは「FIN=1、ACK=1」のパケットです。
それに対して、ピヨ太PCはピヨ子PCに「いいよー」な返事パケットを送ります。
「FIN=0、ACK=1」のパケットです。
これで、ピヨ子PCはピヨ太PCからバイバイする許可をもらいました。
お互いがバイバイすることに同意した状態です。
気持ちよく切断できます。
やり取りされたパケットは
1.「FIN=1、ACK=1」のパケット(→)
2.「FIN=0、ACK=1」のパケット(←)
3.「FIN=1、ACK=1」のパケット(←)
4.「FIN=0、ACK=1」のパケット(→)
です。
これが
1.「バイバイするねー」な連絡パケット
2.「いいわよー」な返事パケット
3.「バイバイするわね」な連絡パケット
4.「いいよー」な返事パケット
に相当します。
それぞれの呼び方が
1.FINパケット
2.ACKパケット
3.FINパケット
4.ACKパケット
です
なお、理屈上は4ウェイバイバイですが、実際には3ウェイバイバイになることもあるようです。
その場合は、もともとの2と3が合体して
1.「バイバイするねー」な連絡パケット(元1:FIN=1、ACK=1)(→)
2.「いいわよー」な返事パケット+「バイバイするわね」な連絡パケット(元2+3:FIN=1、ACK=1)(←)
3.「いいよー」な返事パケット(元4:FIN=0、ACK=1)(→)
がやり取りされます。
いずれにせよ「FIN=1」のパケットが出てくるのは2回です。
お互いが1回ずつ「バイバイするね」の連絡をします。
一言でまとめるよ
まぁ「FINパケット」って単語が出てきたら「『バイバイするねー』な連絡パケット
(通信用に細切れにされたデータ)なんだな~」と お考えください。
おまけ
■訳してみるよ
「FIN」は多分「finish(フィニッシュ)」の略です。
「finish(フィニッシュ)」の意味は「終了」とかです。
「packet(パケット)」の意味は「小包」とかです。
何となく くっつけると
終了の小包
となります。
小分けにしたデータを小包にして相手に送りつけるイメージですかね。
■検索してみる?






