まっそのせかい

やった事のメモとか

ネットワークメモ

目次

ネットワーク

  • ネットワークにおいて重要なことは他のコンピュータの情報を利用すること。(情報の共有化)
  • パケット交換方式:データを細かく分けて送る方式

ネットワーク機器の会社が独自の通信ルールを定めると異なる会社の機器を用いた際に通信が上手く行えない。
そこで、異なる機種同士の接続を行うための標準化を進めた。
国際標準化機構(ISO)によって作られたネットワークの標準モデルをOSI参照モデルと呼び、このモデルでは通信機能を7階層に分割している。
また、米国国防高等研究計画局(DARPA)によって作られたTCP/IPモデルというものも存在し、このモデルでは通信機能を4階層に分割している。
いずれも通信ルールを定めるという意味で役割は同じ。
インターネットに使われている通信ルール(TCP/IPプロトコル)はTCP/IPモデルに沿っている。

OSI参照モデル TCP/IPモデル
アプリケーション層 アプリケーション層
プレゼンテーション層 (アプリケーション層)
セッション層 (アプリケーション層)
トランスポート層 トランスポート層
ネットワーク層 インターネット層
データリンク層 インターフェース層
物理層 (インターフェース層)

TCP/IPモデルのアプリケーション層はOSI参照モデルでのアプリケーション層・プレゼンテーション層・セッション層を兼ねる。
TCP/IPモデルのインターフェース層はOSI参照モデルでのデータリンク層物理層を兼ねる。

  • プロトコル:各層におけるデータ転送などのルール
  • カプセル化:各層でデータを送るためのデータを付け足していく処理
TCP/IPモデル プロトコルの例
アプリケーション層 HTTP,DNS,SMTP,POP3
トランスポート層 TCP,UDP
インターネット層 IP
インターフェース層 イーサネット,PPP,PPPoE

以下TCP/IPモデルでの各層についての記述。

インターフェース層

  • LAN:会社内や大学内など特定の狭い範囲で用いられるネットワーク
  • イーサネット:LANで用いられるプロトコル。LANに繋がってる複数のコンピュータがやり取りを行う
  • ハブ:複数のコンピュータを接続するための中継用の機器

複数のコンピュータがデータの送受信を行うので、例えば同時にデータ(電気信号)が通ると衝突して通信に失敗する。
イーサネットではCSMA/CDという仕組みを用いて衝突を回避している

通常のハブの他、スイッチングハブが存在する。
通常のハブの場合、LAN内の他の特定のコンピュータへデータを送信すると接続されている全てのPCにデータが流れ、正しい送信先のコンピュータは流れてきたデータを受け取り、それ以外のコンピュータは自分宛じゃない事を確認して破棄している。
スイッチングハブの場合送信するデータの送信先を調べ該当するコンピュータにのみデータを流す。

  • NIC:これを通してデータを送る。また、各NICに対し番号(MACアドレス)が一意に割り当てられている。

イーサネットではMACアドレス送信先を決定する。

WANはLANと異なり長距離の送信かつ通信事業者の提供するサービスを利用するため、PPPによって認証などが行われる。
PPPの認証機能をイーサネット上で利用するためにPPPoEというプロトコルが存在する。

インターネット層

複数のネットワーク(コンピュータのグループ)をつなぐ。
ネットワーク内の通信は外へは出ず、他のネットワークにデータを送る場合はルータを利用する。

  • ルータ:ネットワーク同士を接続するのに使用する。また、ルーティングというデータの送信に適切な経路を決定する機能も持つ

インターフェース層ではMACアドレスを利用して次にデータを送る機器(中継を含む)を定めているのに対し、インターネット層ではIPアドレスを利用して最終的な送信先を定めている。

  • IPアドレス:ネットワーク上の機器を識別するための数字。ネットワーク部とホスト部からなる
  • サブネット:1つのネットワークをさらに複数の小さなネットワークに分割すること。識別用にホスト部の一部を利用する(サブネット部)
  • サブネットマスク:どこまでがサブネット部なのかを示すための値。ネットワーク部とサブネット部のビットは1、残りのホスト部のビットを0とする

トランスポート層

ポート番号を利用して受信したデータがどのアプリケーションのものなのかを判別。
また、正しいデータをアプリケーションへ正しく送信する。

  • ポート番号:各アプリケーションに割り当てられる番号

主要なサービスを提供するアプリケーション(メールの送信、Webサイトの情報送信)のポート番号は基本的に固定。

アプリケーション ポート番号
SMTP 25
DNS 53
HTTP 80
POP3 83

他にもいろいろある。サービスを要求するアプリケーションは提供側や他のアプリケーションと被らない番号を設定する。

トランスポート層での主なプロトコルにはTCPUDPがある。

TCP送信先に確実にデータを送る事を意識しているプロトコルである。
送信先がデータを受信できるか確認(スリーハンドシェイク)を行った後にデータを送信する。
分割したデータに番号を割り振り順序制御や再送制御を行い信頼性を高める。
フロー制御を行い効率化を行う。

UDPTCPとは逆に高速性を意識したプロトコルである。(TCPは信頼性を高める代わりに遅い)
少量のデータ送信やリアルタイム配信などの場合はこちらを用いる。

アプリケーション層

各アプリケーションに対し適切な通信サービスを行う。
Webサービスやメール受信サービスなどで異なるプロトコルが用意されている。

  • クライアント・サーバ型:要求側(クライアント)と提供側(サーバ)に分かれてデータをやり取りする形式

以下代表的なプロトコルとその役割

  • SMTP(Simple Mail Transfer Protcol):電子メールを送信する。POP3と組み合わせて使用
  • DNS(Domain Name System):IPアドレスドメイン名を対応させる(扱いやすいように)
  • HTTP(Hyper Text Transfer Protcol):HTMLによって書かれたデータなどをやり取りする
  • POP3(Pos Office Protcol version3):電子メールを受信する。SMTPと組み合わせて使用。

Markdownで資料を作る

Markdownとは

Markdown(マークダウン)は、文書を記述するための軽量マークアップ言語のひとつである。本来はプレーンテキスト形式で手軽に書いた文書からHTMLを生成するために開発されたものである。
(Wikipediaより引用)

要するに、比較的手軽にメモとか資料が書けるんです。(雑)
Qiitaとかはてなブログの記事を書くのにも使えるっぽいです。

どんな感じのものができるの

最終的にHTMLに変換してブラウザで表示しますが、こんな感じになります。
用いるソフトウェアによってビジュアルは若干変化すると思います。
これは後述するSublime Textを用いてHTMLで出力したものです。

f:id:massoumen:20170415220526p:plain

比較的シンプルな見た目で、ソースコードが結構綺麗に表示できるっぽい。

環境の導入

大まかな手順はこんな感じ

  1. Sublime Textのインストール
  2. Markdownを利用するためのパッケージのインストール

Sublime Textのインストール

この辺を参照

http://webmem.hatenablog.com/entry/sublime-text

Markdownを利用するためのパッケージのインストール

この辺を参照

http://webmem.hatenablog.com/entry/sublime-text-markdown

上のリンクを読みながら最終的にこの辺のパッケージを導入しておけば快適に扱えると思う。

書き方

C言語TeXなどと同様、書き方のルールがあるのでそれに従う。

書き方はこの辺を参照。QiitaでのMarkdown記法とかとは若干挙動が異なる場合がある?(よく分かってない顔
ちなみに、拡張子は[.md]となっている。

http://qiita.com/tbpgr/items/989c6badefff69377da7#%E8%A1%A8%E7%A4%BA%E4%BE%8B-10
http://cartman0.hatenablog.com/entry/2015/03/31/034758

終わりに

綺麗だからみんな使おう!(布教活動)