0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TCP/UDP解説

Posted at

##背景
HTTP通信等の下のヒエラルキーに位置するTCP/UDPがいまいち何に使われているのかわからなかったので、まとめてみました。

##TCP/IPモデル
webサービスというのはブラウザの検索窓にURLを入れると、それをDNSで名前解決し〜色々な過程を経てWebブラウザにwebサイトは表示されますが、それを通信的に階層化すると以下のようになります。

1.アプリケーション層: ソフトウェア同士の会話に使われる 例:HTTP,SSH,DNS,SMTP(電子メールを送るときに使う通信)
2.トランスポート層: データのやりとりを順番に制御、エラー訂正したりするなどの信頼性を高めたデータの転送を制御する。 例:TCP,UDP
3.インターネット層:IPアドレスの割り当て、ルーティングをする 例:IP,ICMP、ARP
4.インターフェース層: ネットワーク上で接続されている機器同士で通信する 例:Ethernet,PPP

通信は上のようなヒエラルキー(TCP/IP モデル)になっており、下の層と上の層は互いに干渉しません。

##なぜトランスポートプロトコルが必要なのか?
トランスポートプロトコルが存在することの意味はパケット(データを細切れにしたもの)を 順番通りに正しく送るためです。トランスポートプロトコルのインターネット層でもパケットを送ることはできるのですが、この層は順番を考慮しながらデータを配送することはできないため、データの順番がぐちゃぐちゃになってしまいます。それをカバーするためにトランスポートプロトコルを使います。

##TCPとUDPの違い
TCPとUDPはどちらもトランスポート層に属し、データを送ると言う点では同じなのですが、
TCPではメールなどのデータの順番だけを送れば問題ないものを送っていたのですが、時代の流れに伴い、テキスト文章だけではなく、音声や動画も送信する必要が出てきました。音声や動画はデータの順番だけではなく、データの間隔を正常に送信することも求められるため、TCPにはできなかったのですが、UDPというデータのカプセル化(データを送るときにデータをDockerのコンテナみたいにパッケージ化して送ります。)をアプリケーション側にやらせ、カプセル化したデータをただ送るだけと言うUDPが開発されました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?