#はじめに
就活してて面接で「TCPとUDPの違いを詳しく説明してください」って言われて正確に説明できなかったのが、悔しかったので復習してみます(#^ω^)
正確に解説しているサイトは他にもいっぱいあるので、ざっくりとした解説を心がけています。
より詳しく知りたい方はこの記事を読んだ後に、他の記事や教科書を読んで理解を深めてください~
#ちょーざっくり
TCP | UDP | |
---|---|---|
ヘッダ長 | 長い | 短い |
機能 | 多い | 少ない |
伝送速度 | 遅い | 速い |
PRポイント | うちは高品質なデータ伝送が売りです(メガネクイッ | 業界最速でぇ!!! |
#そもそも | ||
TCP/UDPってなんぞやって言うと、トランスポート層のプロトコルです。 | ||
(参考[1]) | ||
パケットの宛先(IPアドレス)の指定はネットワーク層のプロトコル | ||
がやってくれるのですが、データの配送に関して品質を保証する方法を指定するのが、トランスポート層のプロトコルの役割です。 | ||
あとは宛先ポートの指定によって、パケットを届ける先のサービスを指定します。 |
#もっとくわしく
TCPとUDPの違いを正確に理解したい方は、以下の点に着目するといいと思います。(これが説明できればトランスポートマスター!)
・ヘッダの中身
・コネクション方式
・TCPの機能
・TCP/UDP上でそれぞれ動くプロトコル
だけども、今回はTCPとUDPのコアな違いに着目してコネクション方式のみ解説します。
##コネクション方式
UDPはデータを送って終わり(コネクションレス)ですが、TCPは確実に伝送するために、コネクションを確立してデータを送ります。
具体的に言うと、
①通信の開始の合意をとる
②データが受信できたか確認する
③通信の終了の合意をとる
といった動作を行います。
###①通信開始の合意
いわゆるスリーウェイハンドシェイクという動作を行います。
TCPではデータのやり取りを開始する前に必ず行います。
###②データ受信の確認
データが届くごとに相手に受け取ったことを示すパケットを送ります。
###③通信終了の合意
切断時は4回のやりとりをします。(スリーウェイハンドシェイクと同様に3回で済ませる場合もあるらしい)
(なんで4回なのかわからなかったので、知っている方教えてください……)
#さいごに
以上!!!
通信プロトコルとかを正確に理解したいならマスタリングTCP/IPの入門編買うことおすすめです!!!!
ちなみに、最近だとQUICとかいうTCPとUDPの良いとこどりみたいなプロトコルも出てきてるので要注目です!
読んでいただきありがとうございましたm(_ _)m
#参考文献
[1]けんのへや、『OSI参照モデルとTCP/IPについて』