UDPとは？TCP/IP４階層におけるTCPとの違いは

<p style="text-align:center;">
	<span style="color:#E56600;">&emsp;</span><a href="https://www.fs.com/jp/" target="_blank"><img src="https://media.fs.com/images/community/upload/kindEditor/202109/07/20210907-101427-1630995673-dknMY7cDpX.gif" alt="" width="800" height="90" title="" align="" /></a> 
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
<span style="font-size:14px;">&emsp;TCP/IP通信プロトコルの４階層モデルにおいて、UDPとTCPは共にクライアントや利用者とサーバー間の通信チャネルを構築するプロトコルである。</span> 

&emsp;<span style="font-size:14px;">両者は同じくトランスポート層（第３層）に位置し、利用するアプリケーション（メール受送信、ウェブサイト閲覧、動画視聴、音声など）によって使い方も通信品質も異なる。<br />
</span> 
<iframe width="800" height="400" src="https://www.youtube.com/embed/BUGW0ht-y5s" frameborder="0">
</iframe>
<p style="text-align:center;">
	<a href="https://www.fs.com/jp/products/108710.html" target="_blank"><span style="color:#E53333;"><strong><u><span style="font-size:12px;">関</span><span style="font-size:12px;">連商品：</span></u></strong></span><span style="color:#E53333;font-size:12px;"><strong><u>S5860-20SQ（20x10Gb SFP+、4x25Gb SFP28）｜164,697円</u></strong></span></a> 
</p>
<h2 class="Cou_tit">
	目次
</h2>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<a href="#1">定義から見る違い</a> 
</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<a href="#2">構造から見る違い</a> 
</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<a href="#3">動作から見る違い</a> 
</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<a href="#4">データ転送に必要なポート番号の違い</a> 
</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<a href="#5">違いを図表で求める</a> 
</p>
<div class="new_community_blog_detail_underline">
</div>
<h2 class="tit_one community_blog_detail_tit_one" id="1">
	TCPとUDP、定義から見る違い
</h2>
<h3 class="new_community_detaile_section_h3 new_community_detaile_section_h3_1">
	<span style="color:#337FE5;">UDPとは</span> 
</h3>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<span style="font-size:14px;">&emsp;UDPとは、User Data Protocolの略語で、高速通信を重視する通信プロトコルである。</span> 
</p>
<span style="font-size:14px;">&emsp;UDPは<span style="color:#009900;"><strong>コネクションレス型</strong></span>通信プロトコル（<strong>事前のやり取りなしで通信を開始させる</strong>）として、動画配信、音声通話、モニター監視などのリアルタイム的な分野で活用される。<br />
</span><span style="font-size:14px;">&emsp;<span style="color:#009900;"><strong>高速通信を実現した代わりに、パケットロスによる低い信頼性が出てくる。</strong></span></span> 
<p>
	<img src="https://media.fs.com/images/community/upload/kindEditor/202202/19/tcp-ip%E5%AF%B9%E5%BA%94%E5%8D%8F%E8%AE%AE-1645236497-cILzBHHD22.jpg" alt="" width="800" height="287" title="" align="" /> 

<p style="text-align:center;">
	<span style="font-size:12px;">図１：TCP/IP４階層モデルにおけるUDPとTCP</span> 
</p>
<h3 class="new_community_detaile_section_h3 new_community_detaile_section_h3_1">
	<span style="color:#337FE5;">TCPとは</span> 
</h3>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<span style="font-size:14px;">&emsp;TCPとは、Transmission Control Protocolの略語で、高い信頼性で安定した通信を重視する通信プロトコル。</span> 
</p>
<span style="font-size:14px;">&emsp;TCPは<span style="color:#009900;"><strong>コネクション型</strong></span>通信プロトコル（<strong>事前のやり取りを確認した上で通信を開始させる</strong>）として、ウェブサイト閲覧、ファイル転送などのデータ完全性が求められるアプリケーションで実用される。<br />
</span><span style="font-size:14px;">&emsp;安全かつ安定した高信頼性のデータ転送を実現した一方、転送速度は今ひとつで、UDPより劣っている。</span> 

<h2 class="tit_one community_blog_detail_tit_one" id="2">
	TCPとUDP、構造から見る違い
</h2>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<span style="font-size:14px;">&emsp;TCPパケットには、３ウェイハンドシェイクの通信動作をサポートする情報が含まれる。例えば、受信確認や返事を記す「ACK」、通信を要求する「SYN」、パケット通信の順番を示す「シーケンス番号」などが付いているため、相当な負荷がかかる。</span> 
</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<span style="font-size:14px;"><img src="https://media.fs.com/images/community/upload/kindEditor/202202/19/tcpudp%E6%A7%8B%E9%80%A0-1645236979-qOknFSi3vP.jpg" alt="" width="800" height="428" title="" align="" /><br />
</span> 
</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1" style="text-align:center;">
	<span style="font-size:14px;"><span style="font-size:12px;">図２：UDPとTCPの構造的違い</span><br />
</span> 
</p>
<p>
	<span style="font-size:14px;">&emsp;</span> 
</p>
<p>
	<span style="font-size:14px;">&emsp;UDPパケットには、送信元ポート番号と宛先ポート番号が含まれるが、確認応答、再送制御などの情報は存在しないため、通信にかかった負荷もTCPより軽い。</span> 
</p>

<h2 class="tit_one community_blog_detail_tit_one" id="3">
	TCPとUDP、動作から見る違い
</h2>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<span style="font-size:14px;">&emsp;UDPと比べて、安全かつ安定した通信を果たしたTCPの動作は複雑で持続的な通信が必要である。</span> 
</p>
<h3 class="new_community_detaile_section_h3 new_community_detaile_section_h3_1">
	<span style="color:#337FE5;">３ウェイハンドシェイクによるTCP通信伝送路の確立</span> 
</h3>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<span style="font-size:14px;">&emsp;TCPに基づくデータ通信を実行する前に、<span style="color:#009900;"><strong>受送信両側間のコネクション成立が必須</strong></span>となる。そのコネクションの確立を実現した手順は「３ウェイハンドシェイク」と呼ばれる。</span> 
</p>
<span style="font-size:14px;">&emsp;◉&emsp;SYNパケット（Synchronize Packet）：コネクション確立の前に、クライアントからサーバーに送られるパケットで、最初の接続の申し入れである。<br />
</span><span style="font-size:14px;">&emsp;◉&emsp;ACK番号（ACKnowledgement）：確認応答番号で、宛先に応答を返すために送る信号パケットである。</span> 
<p>
	<img src="https://media.fs.com/images/community/upload/kindEditor/202202/19/tcp%E9%80%9A%E4%BF%A1%E5%8B%95%E4%BD%9C-1645237020-2QjshxJfCf.jpg" alt="" width="800" height="400" title="" align="" /> 
</p>
<p style="text-align:center;">
	<span style="font-size:12px;">図３：３ウェイハンドシェイク通信動作の手順</span> 
</p>
<h3 class="new_community_detaile_section_h3 new_community_detaile_section_h3_1">
	<span style="color:#337FE5;">UDPの通信動作</span> 
</h3>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<span style="font-size:14px;">&emsp;事前の通知や前触れもなく、通信を開始するのはUDPの特徴である。そのため、通信の品質を引き換えにリアルタイムの高速通信を実現した。</span> 
</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<span style="font-size:14px;"><img src="https://media.fs.com/images/community/upload/kindEditor/202202/19/udp%E9%80%9A%E4%BF%A1%E5%8B%95%E4%BD%9C-1645237060-2myKuZYRcq.jpg" alt="" width="800" height="206" title="" align="" /><br />
</span> 
</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1" style="text-align:center;">
	<span style="font-size:14px;"><span style="font-size:12px;"></span><span style="font-size:12px;">図４：UDPの通信動作の手順</span></span> 
</p>

<h2 class="tit_one community_blog_detail_tit_one" id="4">
	UDPとTCP、データ転送に必要なポート番号の違い
</h2>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">
	<span style="font-size:14px;">&emsp;ポート番号とは、通信相手を特定するために用いられる番号で、アプリケーションによって変わる。例えば、ウェブサイトを閲覧していると同時に音声電話をする場合に、データを分類して正しいアプリケーションに送り届ける。</span> 

<span style="font-size:14px;">&emsp;いわば、正しいデータを正しいアプリケーションに届けるために利用する識別番号である。<br />
</span> 
	<span style="font-size:14px;">&emsp;下記の図に示すように、クライアント側でポート番号がランダムに割り当てられるが、対応サーバー側ではプロトコルによって特定のポート番号が割り当てられる。そのポート番号に基づき、宛先を識別して受送信する。</span> 
</p>
<p>
	<span style="font-size:14px;"><br />
</span> 
</p>
<p>
	<img src="https://media.fs.com/images/community/upload/kindEditor/202202/19/-1645237102-FOf9NqKZMj.jpg" alt="" width="800" height="400" title="" align="" /> 
</p>
<p style="text-align:center;">
	<span style="font-size:12px;">図５：アプリケーションによる異なるポート番号</span> 
</p>
<div class="new_community_blog_detail_underline">
</div>
<h2 class="tit_one community_blog_detail_tit_one" id="5">
	UDPとTCP、違いを図表で求めると
</h2>
<p>
	<br />
</p>
<table style="width:100%;" cellpadding="2" cellspacing="0" border="1" bordercolor="#337FE5">
	<tbody>
		<tr>
			<td style="text-align:center;">
				<span style="font-size:14px;">プロトコル</span><span style="font-size:14px;"></span><br />
			</td>
			<td style="text-align:center;">
				<span style="font-size:14px;">UDP</span><span style="font-size:14px;"></span><br />
			</td>
			<td style="text-align:center;">
				<span style="font-size:14px;">TCP</span><span style="font-size:14px;"></span><br />
			</td>
		</tr>
		<tr>
			<td style="text-align:center;">
				<span style="font-size:14px;">通信</span><span style="font-size:14px;"></span><br />
			</td>
			<td style="text-align:center;">
				<span style="font-size:14px;">コネクションレス型</span><span style="font-size:14px;"></span><br />
			</td>
			<td style="text-align:center;">
				<span style="font-size:14px;">コネクション型</span><span style="font-size:14px;"></span><br />
			</td>
		</tr>
		<tr>
			<td style="text-align:center;">
				<span style="font-size:14px;">転送速度</span><span style="font-size:14px;"></span><br />
			</td>
			<td style="text-align:center;">
				<span style="font-size:14px;">高速</span><span style="font-size:14px;"></span><br />
			</td>
			<td style="text-align:center;">
				<span style="font-size:14px;">低速</span><span style="font-size:14px;"></span><br />
			</td>
		</tr>
		<tr>
			<td style="text-align:center;">
				<span style="font-size:14px;">信頼性</span><span style="font-size:14px;"></span><br />
			</td>
			<td style="text-align:center;">
				<span style="font-size:14px;">低い</span><span style="font-size:14px;"></span><br />
			</td>
			<td style="text-align:center;">
				<span style="font-size:14px;">高い</span><span style="font-size:14px;"></span><br />
			</td>
		</tr>
		<tr>
			<td style="text-align:center;">
				<span style="font-size:14px;">対応/上位プロトコル</span><span style="font-size:14px;"></span><br />
			</td>
			<td style="text-align:center;">
				<span style="font-size:14px;">DNS、DHCP、SNMPなど</span><span style="font-size:14px;"></span><br />
			</td>
			<td style="text-align:center;">
				<span style="font-size:14px;">HTTP、POP、FTPなど</span><span style="font-size:14px;"></span><br />
			</td>
		</tr>
		<tr>
			<td style="text-align:center;">
				<span style="font-size:14px;">実用例</span><span style="font-size:14px;"></span><br />
			</td>
			<td style="text-align:center;">
				<span style="font-size:14px;">音声通話、動画視聴など</span><span style="font-size:14px;"></span><br />
			</td>
			<td style="text-align:center;">
				<span style="font-size:14px;">ウェブサイト閲覧、メール受送信など</span><span style="font-size:14px;"></span><br />
			</td>
		</tr>
		<tr>
			<td style="text-align:center;">
				<span style="font-size:14px;">メリット・特徴</span><span style="font-size:14px;"></span><br />
			</td>
			<td>
				<p>
					<span style="font-size:14px;">１、オーバーヘッドが少ない</span> 
				</p>
				<p>
					<span style="font-size:14px;">２、パケットロスによる低い信頼性</span> 
				</p>
				<p>
					<span style="font-size:14px;">３、高速なデータ転送</span><span style="font-size:14px;"></span> 
				</p>
			</td>
			<td>
				<p>
					<span style="font-size:14px;">１、オーバーヘッドが大きい</span> 
				</p>
				<p>
					<span style="font-size:14px;">２、高信頼性：データ欠落が発生しない</span> 
				</p>
				<p>
					<span style="font-size:14px;">３、低速だが安定したデータ転送</span><span style="font-size:14px;"></span> 
				</p>
			</td>
		</tr>
	</tbody>
</table>