AWS認定の学習をしていて、「なんか自分ネットワークについて何も分かってないな...」と感じ、AWSの前にネットワークやLinuxの学習をしようと考えました。
この記事はその学習の一環として書いたもので、まずはネットワークの通信規約のデファクトであるTCP/IPをざっくり概観するために作成しました。
記述するプロトコルの選定方法としてはシンプルに、Wikipediaの「インターネット・プロトコル・スイート」ページ(日本語のもの)に記載してある一覧表に記載されているものを採用しました。
アプリケーション層
プロトコル名 | 何の略 | 用途・役割 |
---|---|---|
BGP | Border Gateway Protocol | AS(自律システム)間におけるルーティングを行う。 |
DHCP | Dynamic Host Configuration Protocol | ネットワークを接続するために必要な情報を取得するために用いる。 これがないと昔のWindowみたいに自分でIPアドレスを設定しないといけない。 |
DNS | Domain Name System | ドメインとIPアドレスの関連付け・管理のために用いる。名前解決(ドメイン名をIPアドレスに変換する)を行う。 |
FTP | File Transfer Protocol | ネットワーク上におけるクライアントとサーバ間でのファイル転送のために用いる。 |
HTTP | Hypertext Transfer Protocol | webサーバアプリケーションとwebブラウザなどのクライアントアプリケーション間でのデータの送受信のために用いる。 htmlファイルのようなhypertextを始めとした、様々なデータの転送を行う。 |
IMAP | Internet Message Access Protocol | メールサーバ上でメールを管理するために用いる。 POPがメールをサーバーから一度だけダウンロードするのに対してIMAPではメールをサーバ上で保持し続ける。 |
IRC | Internet Relay Chat | クライアントとクライアントがテキストベースでメッセージのやり取りをするために用いる。 SNSやチャットツールの台頭によって利用者数は年々減少中。 |
LDAP | Lightweight Directory Access Protocol | リソースを一元管理しているディレクトリサービスへ接続するために用いる。 LDAP認証は本プロトコルを利用して実現される。 |
MGCP | Media Gateway Control Protocol | VoIP(ネットワーク上での音声による通話)の実現をサポートするプロトコル。 |
NNTP | Network News Transfer Protocol | ネットニュースサーバから記事を受信あるいはニュースを投稿するために用いる。Webアプリのニュースサイトなどがあるためほとんど使われていない模様。 |
NTP | Network Time Protocol | 時刻の同期に用いられる。Time Protocolと異なり、通信時間による誤差を最小化する機能が含まれる。 |
SNTP | Simple Network Time Protocol | NTPの簡易版。主にクライアントの時刻の同期のみに用いる。 |
TIME | Time Protocol | 時刻の同期に用いる。NTPより古く通信時間に起因する誤差が発生する。 |
POP | Post Office Protocol | メールサーバからメールを取得するために用いる。 IMAPと異なりメールを取得するとサーバからは対象のメールは削除される。 |
RIP | Routing Information Protocol | ルーティングに関する処理を行う |
ONC RPC | Open Network Computing Remote Procedure Call | ネットワーク上の異なるコンピュータ上での処理の実行を遠隔で行うために用いる。 |
RTP | Real-time Transport Protocol | リアルタイムでのデータ転送に用いる。基本的にTCPではなくUDP上で利用される。 |
SIP | Session Initiation Protocol | クライアント間でのセッションを確立するために用いられる。 |
SMTP | Simple Main Transfer Protocol | メールの転送に用いる。 |
SNMP | Simple Network Management Protocol | ネットワーク上の通信機器の監視および制御を行うために用いる。 |
SSH | Secure Shell | 暗号化技術を使って安全に外部サーバに接続し遠隔操作を行うために用いる。 本プロトコルによって通信内容は全て暗号化される。 |
Telnet | Teletype network | テキストベースでの端末間での通信に用いる。SSHのように暗号化はされない。 |
TFTP | Trivial File Transfer Protocol | FTPと同様にファイル転送を行うが、FTPと異なり認証が不要でUDPを使用する。 |
TLS/SSL | Transport Layer Security/Secure Sockets Layer | セキュアな通信を実現するために用いる。盗聴・改ざんの防止、証明書による通信相手の確認が可能。 |
XMPP | Extensible Messaging and Presence Protocol | インスタントメッセンジャーのためのプロトコル。WhatsAppやGoogle Talk、Facebook Chat(Messengerの前身)などで使われている。 |
トランスポート層
プロトコル名 | 何の略 | 用途・役割 |
---|---|---|
TCP | Transmission Control Protocol | アプリケーション側から提供されたデータを送信するために用いる。 データの順序や内容を保証し、正確なデータの転送を行うことができる。 |
UDP | User Datagram Protocol | TCPと同じくデータの送信に用いるが、データの正確性よりも速度を重視したプロトコル。 動画や音声のストリーミング、オンラインゲームのデータ転送に使われる。 |
DCCP | Datagram Congestion Control Protocol | UDPで発生する通信路の混雑を解決するTCPの制御機構を備えたプロトコル。 |
SCTP | Stream Control Transmission Protocol | 通信路混雑を解消する機能を持ち、マルチホーミング機能(複数IPアドレスの利用による可用性の向上)とマルチストリーミング機能(通信効率の向上)を持つ。 |
RSVP | Resource Reservation Protocol | ネットワークにおける通信経路の帯域の予約を行う。 |
インターネット層
プロトコル名 | 何の略 | 用途・役割 |
---|---|---|
IP (IPv4、IPv6) | Internet Protocol | パケットを送信先のIPアドレスの元へ送信するために用いる。 |
ICMP/ICMPv6 | Internet Control Message Protocol | 通信が可能な状態かどうかを確認するために用いる。 pingやtracerouteなどが代表例。 |
NDP | Neighbor Discovery Protocol | ネットワーク上の近隣のノードのアドレスの管理や通信状態の検出に用いる。 IPv6で使用される。 |
IGMP | Internet Group Management Protocol | ネットワーク上で一対多or多対多の通信を行うために用いる。 |
IPsec | Security Architecture for Internet Protocol | データの改ざんの検知やデータの暗号化を行い、セキュリティを担保するために用いる。 |
リンク層
プロトコル名 | 何の略 | 用途・役割 |
---|---|---|
ARP | Address Resolution Protocol | ローカルネットワーク内でIPアドレスからMACアドレスを検出するために用いる。 |
OSPF | Open Shortest Path First | ルーティング(ネットワークの経路選択)処理において、最短の経路を導くために用いる。 |
SPB | Shortest Path Bridging | 複数経路のルーティングを実現するために用いる。負荷分散も行うため可用性・拡張性がある。 |
トンネリング (L2TP) | Layer 2 Tunneling Protocol | 仮想トンネルを構築し、機器間でのデータの送受信を行うために用いる。 |
PPP | Point-to-Point Protocol | 2つのノードを1対1で接続し、データの送受信を行うために用いる。 |
MAC | Media Access Control | 機器ごとのMACアドレスの割り当てやフレーム送受信に用いる。 |