LoginSignup
10
9

More than 3 years have passed since last update.

ネットワークの基本について(TCP/IP、OSI参照モデルなど)

Last updated at Posted at 2019-09-08

書籍でネットワークについて学習したのでまとめてみました。

ネットワークとは

複数のコンピューターを接続して、相互に通信できるようにした状態。通信回路やケーブルなどを通してコンピューター同士を接続することで、情報の共有や処理の分散、メッセージの交換などが可能になる。コトバンク

なぜネットワークが必要なのか

メールを送る、ファイルを共有する、HPを公開する、HPを見る、プリンターを共有して使うといった、それぞれのユーザーがもつリソースをデータによってコンピューター同士で共有するため。

データを共有するにはネットワークを使う必要があるが、ネットワークではどのようにデータを送受信しているのか。Qiita.png

OSI参照モデルによるデータ通信

ネットワークではデータを送る側と受け取る側が使用するルールを決めてデータをやりとりする。そのルールをプロトコルと呼ぶ。データ通信に必要なプロトコルは1つではなく複数のプロトコルからなる。

複数のプロトコルによるデータ通信の説明にはOSI参照モデルがよく使われる。OSI参照モデルはISO(国際標準化機構)がデータ通信の標準化のために作ったもので、プロトコルを7つの階層構造で説明している。

つまり、ネットワークによるデータ通信は段階ごとの複数のプロトコルで実現され、OSI参照モデルの各層ごとにそれぞれ役割とルールが存在する。
OSI.png
                  OSI参照モデル

ではOSI参照モデルを使ってどのようにデータがやりとりされるのか。

データの送信者は第7層から第1層へ向かってデータを送信し、それぞれの階層の役割をこなしながら受信者側の第1層の物理層にデータが届く。
データの受信者側は第1層でデータを受け取り、第7層に向かってそれぞれの階層の役割をこなすことでデータを受信することができる。

OSI (1).png

データについて

送信されるデータはデータ本体のみで送られるわけではなく、宛先、送信元のアドレスなどデータ以外のものも一緒に運ばれる。
データにデータ以外のものをくっつけることをカプセル化といい、カプセル化されたデータをPDU(プロトコルデータユニット)という。
カプセル化で追加されるデータは、データの前につけるときはヘッダー、後ろにつけるときはトレーラーと呼ばれる。
新規登録完了.png

各層の役割について

データ通信ではOSI参照モデルの各層の役割をこなしながらデータを送受信する。

第1層 物理層

物理層では電気信号の条件、ケーブルの端子といった通信の最も基本的な電気的、物理的なルールが決められる。コンピュータを繋ぐケーブルと、ケーブルに流す信号のルールを決めることで宛先にデータを届けられるようになる。実際にデータを信号にして流すのはこの層。

第2層 データリンク層

データリンク層では信号が届く範囲でのデータ転送についてルールを決める。この範囲をセグメントという。

セグメントとは、LANケーブルによってハブやスイッチで繋がれている範囲、または専用線によって繋がれているコンピューターとルーター間、ルーターとルーター間のことをいう。
セグメント (1).png

データリンク層のルールにはLAN用とWAN用があるが、より身近なLAN用のルールではイーサネットが使われる。イーサネットとはLANに関する物理的な規格であり、LANケーブルそのものを指すこともある。

イーサネットではデータにイーサネットヘッダーとイーサネットトレーラーをつけてイーサネットフレームにカプセル化する。イーサネットヘッダーにはあて先MACアドレス送信元MACアドレスの情報がはいっており、これを使って送信先のコンピューターにデータを届ける。

第3層 ネットワーク層

第2層がセグメント内でのデータのやりとりであったのに対し、第3層ではセグメント間でのデータのやりとりを行う。セグメントは狭義の意味で「ネットワーク」と言い換えることができる。ネットワーク間のデータのやりとりとは、ルーターを超えて別のネットワークへデータを送ることである。このネットワーク間でデータをやりとりすることをインターネットワークという。インターネットワークにより、離れた位置にあるコンピュター同士がデータを通信できるようになる。
インターネットワーク.png
                   インターネットワーク

アドレッシングとルーティング

ネットワークを超えた通信ではMACアドレスでは送信先の位置情報がわからないため、どのネットワークのどのコンピュターといった位置情報が必要になる。また、位置情報に加えてどのネットワークを経由して届けるかも決める必要がある。
位置情報、つまりアドレスをどのように書き、どのように割り振るかをアドレッシングという。
どのネットワークを経由してデータを届けるか決めることをルーティングという。

アドレッシングとルーティングによるインターネットワークを行うプロトコルがIP(インターネットプロトコル)と呼ばれるプロトコルである。

第3層ではデータにIPヘッダーをつけて情報を付加する。IPヘッダーの情報で最も重要なものがIPアドレスで、アドレッシングによりインターネットワークでのデータ通信に必要なあて先IPアドレス送信元IPアドレスを特定することができる。インターネットワークではあて先IPアドレス、送信元IPアドレス、あて先MACアドレス、送信元MACアドレスの4つのアドレスを特定することでデータ通信ができるようになる。

あて先IPアドレスと送信元IPアドレスがわかったら、ルーティングを決定するのがルータである。
インターネットワークではあて先にデータを届ける場合、複数のネットワークを経由してデータを届けるが、どのネットワークを経由していけばあて先に届くかを知る必要があり、それを決めるのがルータである。
ルータはルーティングプロトコルで近接するルータと情報を交換し合い、複数ある経路から最適なものを選んで経路を決定する。

第4層 トランスポート層

第1〜3層は「あて先へデータを届ける」役割であったが、第4層では「データを確実に届ける仕組み」と「アプリケーションの識別」を行う。
第4層でこれらの役割を担うプロトコルがTCPUDPである。

コネクションの確立

TCPは「データを確実に届ける仕組み」としてコネクションの確立を行う。第3層でルーティングにより経路が確立されたことでデータを届けることができるようになったが、「確実に」データが届くのかは不明である。
そこでデータ通信を行う前に確認のやりとりを行うことで、相手に「確実に」データが届くのかを確認する。
AとBでコネクションを確立する場合、AからBへデータ転送の許可要求を出す。要求を受けたBはそれに対する許可を送信元に伝える。これで「A→B」へデータが通信できることが確認できる。次は反対にBがAにデータ転送許可要求を出す。そしてAはそれに対する許可をBに伝える。これで双方向のデータ通信が確立されたことになる。
コネクションの確立は3回のやりとりを行うのでスリーウェイハンドシェイクと呼ばれる。
スリーウェイハンドシェイク (1).png

アプリケーション間通信

第4層ではコネクションの確立のほかに「アプリケーションの識別」を行う。

第3層でアドレッシングとルーティングによりコンピュータとコンピュータでデータ通信ができるようになったが、実際にデータ通信を行なっているのはアプリケーションである。データ通信を行う際にブラウザやメールソフトでデータをやりとりした場合、IPアドレスとMACアドレスだけではどのアプリケーションでデータ通信を行なったのかは不明である。そこでポート番号を使ってそれぞれのデータがどのアプリケーションから送信されあて先はどのアプリケーションかを決定する。

したがって実際にデータ通信を行う場合は、IPアドレスとポート番号を使って「どのコンピューターの、どのアプリケーション」を判断する。

よく使われるアプリケーションは「ウェルノウンポート番号」という事前に決められたポート番号が割り振られているので、この番号を使ってデータ通信を行うことができる。

UDP

TCPがスリーウェイハンドシェイクで確認しながらデータ通信を行うのに対して、UDPはデータが正しく届いたかの確認はしない。データが正しく届く保証がないが、確認の手間が省けて、必要な情報もTCPより少ないためデータのサイズが小さくなり、その分データを早く送信することができる。

このため、UDPは確実性よりもスピードが優先される動画配信サービスなどで使われる。

第5層 セッション層

第5層ではデータ通信での処理がセッション、つまり会話として成り立つように制御している。

例えば認証やログイン、ログアウトなどはアプリケーション間で
・「認証してください」→「認証します」
・「ログインさせてください」→「ログインします」

といった会話形式で言葉をやりとりしている。この言葉のやりとりが会話として成り立つように制御している。

第6層 プレゼンテーション層

第6層ではアプリケーションのデータの表現形式を規定している。

例えばテキストデータをやりとりする場合、データの送信者と受信者でデータ形式が異なっていると文字が送れなくなってしまう。そこでデータ形式をプレゼンテーション層で変換し、差異をなくすことでデータ通信を可能にする。

ほかにもデータの圧縮や変換も行うことができる。

第7層 アプリケーション層

第7層はアプリケーションによってネットワークサービスを提供するレイヤーである。
アプリケーション層ではアプリケーションの目的に応じたプロトコルを提供する。

アプリケーション プロトコル
ブラウザー HTTP
FTPクライアント FTP
メールクライアント SMTP

参考

3分間ネットワーク基礎講座
図解サーバー仕事で使える基本の知識

10
9
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
10
9