2020-10-04_hw オンライン プログラミング勉強会の記録

この記事は14分で読めます

このサイトは学部では早稲田で物理を, 修士では東大で数学を専攻し, 今も非アカデミックの立場で数学や物理と向き合っている一市民の奮闘の記録です. 運営者情報および運営理念についてはこちらをご覧ください.

中高の数学の復習から専門的な数学・物理までいろいろな情報を発信しています.
中高数学に関しては自然を再現しよう役に立つ中高数学 中高数学お散歩コース
大学数学に関しては現代数学観光ツアーなどの無料の通信講座があります.
その他にも無料の通信講座はこちらのページにまとまっています.
ご興味のある方はぜひお気軽にご登録ください!


目次

進捗

  • 今日の進捗
    • 基礎知識編:P.406 の同期制御まで
    • 本編:03_04 はじめから、03-05 最急降下法の簡単な説明まで
  • 次回
    • 基礎知識編:P.408 7.8 交換方式から
    • 本編:03-05 最急降下法の復習

課題

TODO

自分用メモ

  • 遅延型方程式に対するコメント追加
  • matplotlib のチュートリアルを読もうの会
    • 公式情報に触れる重要性
    • 古い情報が古いと書いてあったりする:たとえば pylab
    • Gallery
      • 見ていて面白い
      • 「どこをいじるとどう変わるか」が視覚的にわかる
      • 公式情報なのできちんとアップデートしてくれている(はず)
      • 公式情報にソースがあるので自分でいろいろ書き換えていて破滅したとき、必ずオリジナルを復元できる

Matplotlib

  • 本当に簡単な図を描く
  • これを参考に scipy お絵描き
import numpy as np
import matplotlib.pyplot as plt
from scipy.special import sph_harm

m,l = 1,1
theta = np.linspace(0, np.pi, 101)
phi = np.linspace(0, 2 * np.pi, 151)
theta, phi = np.meshgrid(theta, phi)

r = sph_harm(m, l, phi, theta).real
x = np.abs(r) * np.sin(theta) * np.cos(phi)
y = np.abs(r) * np.sin(theta) * np.sin(phi)
z = np.abs(r) * np.cos(theta)

fig = plt.figure(figsize=(8, 8))
ax = fig.gca(projection="3d")
ax.plot_surface(x, y, z, color="aqua", edgecolor="k")
plt.axis("off")
plt.show()
png

TeX の記録

  • 拡散方程式

\begin{align}
u_t = \triangle u.
\end{align}

競プロ、AtCoder

6. 素因数分解を活用した考察6-3. 素数を分け合う

問題

$N$ 個の $1$ 以上の整数 $a_1,a_2,\dots,a_N$ があります. $a_1,a_2,\dots,a_N$ の値はわかりませんが, $a_1 \times a_2 \times \cdots \times a_N = P$ がわかっています. $a_1,a_2,\dots,a_N$ の最大公約数として考えられるもののうち, 最も大きいものを求めてください.

ポイント

  • 「(整数の積) = (整数)」という形の式を見たら素因数分解を考えてみる
  • $P$ を素因数分解する
    • $a_1 a_2 \cdots a_N= p_1^{e_1} p_2^{e_2} \cdots p_K^{e_K}$
    • $e_1$ 個の $p_1$
    • $e_2$ 個の $p_2$
    • $e_K$ 個の $p_K$
  • $a_1,a_2,\cdots,a_N$ の $N$ 人で分け合う
  • $a_1,a_2,\cdots,a_N$ の最大公約数をなるべく大きくするには素数をなるべく均等に分配する
  • 注意:「各素因数ごとに独立に考えて良い」
  • まとめ
    • $P=p_1^{e_1} e_2^{p_2} \cdots p_K^{e_K}$ と素因数分解する
    • 各素因数 $p_i$ について、$e_i/N$ を計算し、あまりは切り捨てる
    • その個数だけ $p_i$ をかける

コードの参考

# coding: utf-8
def prime_factorize(p):
    # 計算結果を積む変数
    arr = []

    # 各素因数ごとに考えればいい
    # 2 だけ別に処理: 割れるだけ割っておく
    if p % 2 == 0:
        # 「べき」を積む変数を初期化
        cnt = 0
        while p % 2 == 0:
            cnt += 1
            p //= 2 # どんどん割っていく
        # 2 のべきをリストで積む
        arr.append([2, cnt])

    # 奇素数に対する処理
    q = 3
    # 素数のループの定型処理: p の平方根まで計算すればいい
    # ループ中で p 自体をどんどん小さくしていくのではじめに sqrt_p を計算してはいけない
    while q * q <= p:
        if p % q == 0:
            cnt = 0
            while p % q == 0:
                p //= q # q でどんどん割って小さくする
                cnt += 1 # 割れたらカウントアップ
            arr.append([q, cnt])
            q += 2 # 偶数は既に処理しているので偶数は飛ばしていい
        else:
            q += 2 # 偶数は既に処理しているので偶数は飛ばしていい
            continue

    # p が素数の場合の処理
    if p != 1:
        arr.append([p, 1])

    return arr

def solve(n, p):
    # n, p = map(int, input().split())
    # 計算結果を積む変数
    ans = 1

    # p = 1 は別処理
    if p == 1:
        return 1

    pr_list = prime_factorize(p)

    # a^b が p の素因数分解に含まれる
    for a, b in pr_list:
        # b は p の素因数分解のべきで, n 等分できないなら無視する
        if b >= n:
            # 最大公約数を考えるので a^b を適切な形で積む
            ans *= a ** (b // n)

    return ans

print(solve(3, 24))           # 2
print(solve(5, 1))            # 1
print(solve(1, 111))          # 111
print(solve(4, 972439611840)) # 206
2
1
111
206

Project Euler も見てみよう

  • Problem5
  • GitHub の回答集
  • 中高生の数学・プログラミング学習用によかろうと思い、ちょこちょこやっている

IT 基礎知識

  • 応用情報の本を一日2ページくらい眺めてみてください。毎日やれば大体 1 年で読み終わります。

復習

OSI基本参照モデル

  • 会社の部署と同じ気分
  • 特定層は自分のところにしか責任を持たない
  • 「他の層は他の層で専門的に管轄してね」
  • お互い全くの無関係ではないが、基本的には自分のことだけ考えていればいい。

いろいろなプロトコル

  • IP, HTTP, SMTP, POP, ARP…
  • 通信の規格
  • 状況に応じて適切なプロトコルを選ぶ
  • ヘッダ・ボディーの概念

本の記述を追いかける

P.398 メール受信プロトコル、メール関連のプロトコル・規格

  • 昔のプロトコルはセキュリティ関連の仕様がなかった
  • SMTP-AUTH, SMTP over TLS/SSL など

P.399 Web 関連

  • HTTP: HTTP(Hyper Text Transfer Protocol)は WebサーバとWebクライアント(ブラウザ)間でHTMLなどのWeb情報の配信 に使うプロトコル
    • セキュリティ:HTTP に SSL/TLS の認証機能や通信の暗号化を実装した HTTPS が登場
  • SOAP: XML を使ってデータ構造を記述
    • 最近あまり見かけない印象
    • XML 自体もうあまり使わない
    • 最近は JSON や GQL をよく見かける

P.401 DNS(Domain Name System)

  • TCP/IPでは,各ノードに対して一意なIPアドレスが割り当てられている
  • IPアドレスは覚えにくい
  • IP アドレスと対応する別名であるドメイン名がつけた
  • ドメインと IP を対応させるサービスが DNS
  • 原理的には世界中のすべてのノードのドメイン名とIPアドレスの対応関係を知ってい なければならない
    • 事実上不可能
    • DNSの規約では変換表作成の負担を細分化して,DNSを分散データベースとすることで対応しています。
  • DNS ルートサーバー
  • DNS ポイズニングのような攻撃手法もある

P.402 DNS クライアント(リゾルバ)の名前解決要求

コンテンツサーバへの問い合わせを繰り返すのは非効率なので,通常,自組織内にキャッシュサーバを置きます。この場合,リゾルバはキャッシュサーバに問い合わせを行い,キャッシュサーバ内に該当情報がキャッシュされていれば直接回答を得ることができます。ない場合は,キャッシュサーバが組織外のコンテンツサーバに問い合わせを行い,その結果をリゾルバに回答します。また,キャッシュサーバは,同様の問い合わせの際に再利用できるよう,問い合わせで得た結果を一定期間キャッシュします。

リゾルバからキャッシュサーバに送られる問い合わせを再帰的な問合せという。”再 帰 的”とは,「再び帰ってくる」という意味で,再帰的な問合せに対しては,最終的な結果を回答する必要がある。

  • 例えばディレクトリツリーを掘るタイプのプログラムではよくやる処理
  • (F# で)競プロをやっていると意外と再帰を使う(使える)ことに気づいた
    • いわゆる関数型言語は(命令型で)ループを使うところは高階関数か再帰で処理する
    • たいてい高階関数で足りる
    • 再帰は末尾再帰など面倒ポイントがある

P.402 インターネット上の電話サービスで用いるプロトコル

  • VoIP(Voice over Internet Protocol)
  • IPネットワークで音声をやり取りするための技術
  • データの伝送にはリアルタイム性に優れたUDPをベースとしたプロトコルが使われる
    • 届かなかったらもう一度しゃべらせればいい

P.403 その他のアプリケーション層プロトコル

  • FTP:ファイルを送る。ポートは 20、21
    • セキュリティが甘いので FTPS、SFTP、SCP などがある
  • Telnet:(あまり使ったことない)
  • SSH(Secure SHell):サーバーにログインするときに使う。とにかくよく使う。
    • テキストベースの通信であるTelnetに対し,暗号化や認証技術を利用して安全に遠隔操作するためのプロトコル
  • NTP・SNTP(Network Time Protocol):時刻合わせ
  • LDAP(Lightweight Directory Access Protocol):ディレクトリサービスにアクセスするためのプロトコル
    • Windows の ActiveDirectory も LDAP を使っている
    • 社員情報をやり取りするシステム間連携で出てくる

P.404 7.7 伝送技術

P.404 誤り制御

P.404 パリティチェック

  • 最もシンプルな検査方法
  • 7 ビットのデータを送信する場合,8 ビット目に誤り検出用のパリティビットを入れてデータの整合性を検査
    • 偶数パリティ:8ビットの各ビットについて“1”の数が偶数になるようにパリティビットを挿入する
    • 奇数パリティ:上で奇数にする
  • 有限体(ガロア体)$\mathbb{F}_2$ (ビット)で考えるといってもいい。
  • 微分形式で偶数次と偶数次・偶数次と奇数の積が偶数次になり、奇数次と奇数次の積がと奇数次になるのも一種のパリティチェック。
  • cf. P.405 水平垂直パリティチェック

P.404 CRC

  • CRC:巡回冗長検査(Cyclic Redundancy Check)
  • 送信するデータに生成多項式を適用して誤り検出用の冗長データを作成し,それを付けて送信
  • 受信側は送信側と同じ生成多項式で受信データを割り,同じ結果であればデータ誤りが
    ないと判断
  • CRCでは複雑な演算を使ってバースト誤り も検出できる
    • バースト誤り:データ転送回線上で連続して発生するビットの誤りのこと。ノイズの混入で生じることが多い。
  • HDLC 手順が採用

P.404 ハミング符号

  • 上で紹介した動画で簡単に数学的な原理を紹介している
  • 情報ビットに対して検査ビットをつけて 2 ビットまでの誤り検出と,1 ビットの誤り自動訂正機能をもつ誤り制御方式
    • 原理的には何ビットの誤り検出・自動訂正でもできる
  • 代数幾何符号もある
    • 数学的にはもちろん難しい
    • 有限体上の(非特異な射影)代数曲線を使う

P.406 同期制御

  • 通信時に送信側と受信側でタイミングを合わせる必要がある。
  • 本の話題とは別に同期・非同期にはいろいろな話があって難しい。
  • プログラミング、特に JavaScript フロントエンド周り。
  • データベースの同期・非同期
    • 大規模サービスでの問題、READ-WRITE、マスター・スレーブ
    • ふつう読み込みに比べて書き込みは少ない
    • 場合によっては読み込みは完全に最新の情報でなくてもいい
    • 書き込みメインのデータベースと、その内容を適当なタイミングでもらってくる読み込み専用のデータベースがある:これがマスターとスレーブ
    • 参考:前にやった Twitter のシステム構成など
    • 適当な意味で完全同期していないとまずいシステムもある:銀行・金融系
      • cf. トランザクション
      • トランザクションはふつう銀行が例になるくらい、そちらの話が有名でしかもイメージしやすい

P.408 7.8 交換方式

P.408 パケット交換方式

  • 回線交換方式と対になる概念
    • 回線交換方式:通信を行うノード間で物理的な通信路を確保してから通信する
    • 例:電話
  • パケット交換方式について
    • データ送信するノードはデータをパケットに区切る。
    • ひとつひとつのパケットにヘッダを付けて送信。
    • ネットワーク内ではパケット交換機にパケットがたまる
    • ネットワークの状況に応じて順次送られる

パケット通信のメリット・デメリット

メリット

耐障害性
– 通信路を固定しないため,迂回経路が取れる。
– パケット交換機にデータが蓄積されているため,復旧まで待てる。

  • パケット多重
    • 1 対 1 の通信で回線を占有する必要がないため,1つの回線を多くのノードで共有でき,回線を効率的につかえる
  • 異機種間接続性
    • パケット交換機で中継するときにプロトコル変換・速度変換でエンドノードどうしが同じプロトコルをサポートしていなくても通信できる
デメリット
  • ネットワーク内の蓄積交換処理による遅延
    • 蓄積交換処理による遅延解消のために主に回線の帯域を広げることで対応してきた
    • 構造上,完全には遅延をなくせない
  • パケット到着順序の不整合

P.408 ATM 交換方式

  • ATM(Asynchronous Transfer Mode:非同期転送モード)
  • 遅延のない回線交換方式とパケット交換方式の利点を得たい
  • パケット交換方式の発展
  • 遅延の原因をつぶす:特にパケットの多様性
    • 多種多様なパケットに対応するために,パケット交換機はソフトウェア処理が必要
      ^ ATM での工夫の一例:最も特徴的なのは,パケット(ATMではセルという)の長さをヘッダ部 5 バイト,ペイロード 48 バイトの53バイトに統一
    • パケット解析がハードウェアだけでできる。
    • ソフトウェアは不要になった。
  • Wikipedia から
    • 当初の意図に反して非常に複雑な技術になってしまった
    • ATM は次世代の主流にならず限定的な使用にとどまった
    • ATM の設計思想は MPLS へと引き継がれた
    • 汎用のレイヤ 2 のパケットスイッチングのプロトコルとして、ルーターを介したIPの通信網で利用されている。

P.408 ペイロード(payload)

  • データ通信で本来転送したいデータ本体の部分、ボディを指す。
  • ATM ではペイロードのサイズを固定して処理を簡素化
  • 難点:パケット全体に占めるペイロードのサイズが相対的に小さくオーバヘッドが大きい

P.410 輻輳

  • フレームリレー:パケット交換方式の一種
    • 1 つの回線を多数のユーザで共有。
    • 回線がもつ潜在的な伝送能力(ワイヤスピード)を十分に引き出すうえで効果がある
  • 輻輳:ユーザの利用が一時期に集中すると,ワイヤスピードを超えるパケットがネットワーク上に流れる
    • ネットワークが輻輳状態になるとスループットが落ちる
  • フレームリレーサービスを提供する事業者は,ネットワークが輻輳状態に陥ってスループットが低下しても最低限保証する通信速度を決めている
    • CIR(Committed Information Rate:認定情
      報速度)

P.370 7 ネットワーク

  • 確か 7.4 から始めた気がするので 7 章はじめから

P.370 7.1.1 OSI基本参照モデル

  • 改めて復習
  • OSI(Open System Interconnection)基本参照モデル- 異なる設計思想・世代のシステムと円滑に通信するのが目的に標準化
  • プロトコルの単機能化,交換の容易さが目的
    • 階層化のおかげで一部の階層の技術体系が変わっても、その階層だけ取り替えればいい
    • コスト・リスクを小さくする

P.370 プロトコルとサービス

  • N 層:それぞれの階層のこと
  • エンティティ:N 層に存在する通信機器などの実体
    • この言葉はいろいろなところで出てきていろいろな意味で使われる
    • もちろん気分的には適当な実体を指すことが多い
  • プロトコル:N 層に属するエンティティが通信するための取り決め
  • 上位の層が下位の層を利用しながら通信する
    • 別の階層間のエンティティどうしが通信する窓口が必要
    • これを提供するのが下位層:この機能をサービスと呼ぶ
  • プロトコルに沿った仕様で製品を開発すれば別のベンダの機器でも通信できる
  • 参考:ベンダーロックイン

特定ベンダー(メーカー)の独自技術に大きく依存した製品、サービス、システム等を採用した際に、他ベンダーの提供する同種の製品、サービス、システム等への乗り換えが困難になる現象のこと。

出来上がった情報システムの正確な仕様が、システムを開発・構築したベンダーにしか解らなくなる場合がある。結果、システムの保守・拡張・改修等の際、現存システムを開発・構築したベンダーに引き続き発注せざるを得なくなる。

  • 「Excel で行政に提出する書類を作れ」事案もそれ。
  • Apple 製品で身の回りを固めるのも同じ。
  • 「多様性が大事」事案でもある。

7.1.2 TCP/IPプロトコルスイート

  • プロトコル同士には相性がある
    • 「ネットワーク層がこのプロトコルならトランスポート層はこのプロトコルにしておくとトラブルが少ない」
  • 一般に同じ団体が作ったプロトコルはセットで使われることが多い
    • このセットがプロトコルスイート
      ^ 最も代表的なのは IP を中心に組まれた TCP/IP プロトコルスイート
    • 独自の階層モデルをもつ

P.372 TCP/IPの通信

  • データをパケットに区切る
    • 各パケットにヘッダを付けて送信
    • ヘッダは各階層ごとに付加されて次の階層へと渡される
    • 各ヘッダにはその階層で必要となる送信元や送信先,大きさ,順番などパケット自体に関する情報を含む
    • TCPヘッダを付加したパケット:TCP セグメント
    • IP ヘッダを付加したパケット:IP パケット
    • MACヘッダを付加したパケット:MAC フレームあるいはイーサネットフレーム

P.372 MAC(Media Access Control)アドレス

  • イーサネットや FDDI で使用される物理アドレス
    • イーサネット (Ethernet):コンピューターネットワークの規格の1つ。オフィスや家庭で一般的に使用されている有線LAN (Local Area Network) の技術規格
    • FDDI:LAN でデータ転送を行うための標準の一つ
      • Fiber distributed data interface
  • データリンク層
  • 同じネットワークに接続された隣接ノード間の通信で相手を識別するために使う
  • MACアドレスの長さ:6バイト
    • 先頭24ビットの OUI(ベンダID)
    • 後続24ビットの固有製造番号(製品に割り当てた番号)
  • MAC アドレスは機器が固有にもつ番号
    • 必ず一意に定まるように IEEE が管理

P372 ポート番号

  • トランスポート層にでノード内のアプリケーションの識別に使う識別子番号
    • 0-65535の範囲
  • TCP/IPではパケット交換方式でデータをやり取りする
  • よく使われるアプリケーションについてのポート番号は Well-Known ポートとして標準化
    • TCP・UDPそれぞれで 0-1023 番までの番号を割り当てている
    • SSH:TCP22番
    • Telnet:TCP23番
    • SMTP:TCP25番
    • HTTP:TCP80番
    • POP3:TCP110番
    • IMAP4:TCP143番
    • HTTPS :TCP443番
    • NTP:UDP123番
    • SNMP:UDP161番
    • SNMP Trap :UDP162番
  • セキュリティ対策のために標準とはポート番号を変えることもある
  • Web 開発の本を読んでいると、いろいろな都合から http のポートを 80 以外にしていることもよくある。
    • 80 の場合はポートを指定しなくてもいい
      • 例:http://localhost/hoge/fuga
      • 例:http://localhost:5000/hoge/fuga

P.373 ネットワーク間の通信

  • 同じネットワークに接続されたノード間はデータリンク層(第 2 層)の通信
  • ネットワークを超えたノード間はネットワーク層(第 3 層)の通信 -実際に図 7.1.4 を見よう
    • どこが IP アドレスでのやりとりか?
    • どこが MAC アドレスでのやり取りか?

P.374 7.2 ネットワーク接続装置と関連技術

P.374 7.2.1 物理層の接続

P.374 リピータ

  • ネットワーク上を流れる電流の増幅装置・整流装置
  • 物理層:第 1 層
  • データ通信はネットワーク上を流れる電流
    • ケーブルが長いと電流が減衰・波形が乱れが起きる
    • データが読み取れなくなる
    • これを増幅するのがリピータ
  • 大昔の電話は距離が遠いと音が小さく聞こえにくかった
    • まさにこの減衰が問題
  • リピータは 1:1 で繋ぐ
    • 現在では複数のノードを接続できるマルチポートリピータ(ハブ)が使われるのが一般的

P.374 7.2.2 データリンク層の接続

  • 第2層

P374 ブリッジ

  • データリンク層に位置
  • ネットワーク上を流れているフレーム(情報の単位)の MAC アドレスを認識して通信を中継する
    • 接続されているノードをコリジョンドメイン(セグメント)という単位に分割
    • MAC アドレスで判定したフレームのあて先のあるセグメントだけにフレームを送信
    • 無駄なトラフィックの回避
  • ポートの記憶
    • 通信のたびにある MAC アドレスをもつノードがどのポート
      に接続されているか学習
    • 次回の通信時には余分なポートには通信を中継しない。
  • ブリッジの動作
    • あて先MACアドレスをもとにMACアドレステーブルを参照する
    • あて先MACアドレスの接続ポートがフレームを受信したポー トと別ポートであれば,そのポートにフレームを送信し
      • 同一ポートであればフレームを破棄する
    • あて先MACアドレスが記憶されていない場合やブロードキャス
      トアドレス(FF-FF-FF-FF-FF-FF)の場合は,受信ポート以外のすべてのポートにフレームを送信する

P.375 スイッチングハブ

  • レイヤ2スイッチ(L2スイッチ)とも呼ばれる
  • データリンク層に位置
  • ブリッジと同じ働きをする
    • MAC アドレスを認識してフレームのあて先を決めて通信を行います。
  • 試験での問われ方
    • スイッチングハブはフレームの蓄積機能、速度変換機能や交換機
      能をもっている。
    • このようなスイッチングハブと同等の機能をもち,同じプロトコル階層で動作する装置はどれか
    • 答えは「ブリッジ」

P.375 ブロードキャストストリーム

  • データリンク層で動作するブリッジやスイッチングハブなどの
    LANスイッチはブロードキャストフレームを受信ポート以外
    のすべてのポートに転送
  • これらの機器をループ状に接続し冗長化させると信頼性はあがる
    • ブロードキャストフレームは永遠に回り続けながら増える
    • 最終的にはネットワークダウンを招く
    • この現象をブロードキャストストームという
  • ブロードキャストストームを防ぐプロトコル:スパニングツリープロトコル(Spanning Tree Protocol:STP)
    • ループを構成している一部のポートを通常運用時にはブロック(論理的に切断)する
    • ネットワーク全体をループをもたない論理的なツリー構造にする

P.376 ネットワーク層の接続

  • 第 3 層(レイヤ 3)

P.376 ルータ

  • ルータはネットワーク層(第 3 層)に位置する
    • あて先IPアドレスを見てパケットの送り先を決め通信を制御する
  • IP のローカルネットワークの境界線に設置して利用され,ネットワークの基本単位として機能
  • 世界中に散在しているローカルネットワークどうしをルータが結ぶ
    • 全体としてインターネットというインフラが機能
  • ルータで分けられたネットワークの単位をブロードキャストドメインという
  • ルータがパケットを受け取ったあと
    • あて先IPアドレスを見る
    • 自分のネットワークあてであれば,破棄
    • 他のネットワークあてであれば転送
      • どのルータへ送ればあて先のネットワークへの通信が速く行えるかを判断することを経路制御(ルーティング)
      • ルータはそのための経路表(ルーティングテーブル)を備えている

P.376 デフォルトゲートウェイ

  • 会社Aのネットワークに属するPCは会社BのPCと直接通信できない
  • 会社AのPCは他ネットワークへの接点であるルータAに転送を依頼
  • デフォルトゲートウェイ:会社AのPCから見て直近のルータA
  • 自分と直接接続していない相手と通信するときはすべてデフォルト
    ゲートウェイを中継する

P.376 ルーティング

  • 経路表(ルーティングテーブル)の作成方法
    • 手作業で作る:スタティックルーティング
    • ルーティングプロトコル利用:ルータ同士が経路情報を交換し、自立的に経路表を作るダイナミックルーティング
  • ダイナミックルーティングのための代表的なルーティングプロトコル:RIP、OSPF
  • RIP:ディスタンスベクタ型(距離ベクトル型)
    • ルーティングテーブルの情報(経路情報)を一定時間間隔で交換しあう
    • あて先ネットワークにいたるまでに経由するルータの数(ホップ数)最小経路を選ぶ
    • あて先に到達可能な最大ホップ数は 15
      • これを超えた経路は採用されない
  • OSPF:リンクステート型
    • コストを経路選択の要素に取り入れ、コスト最小経路を選ぶ
    • コスト値は,回線速度を基に自動的に算出されるが手動設定もできる
    • コスト算出式「コスト=100Mbps/経路の通信帯域(bps)」
  • コスト計算例は P.377 の図を見ること

P.377 ルータの冗長構成

  • ルータを冗長構成のために使うプロトコル:VRRP(Virtual Router Redundancy Protocol )
  • 同じ LAN に接続された複数のルータを仮想的に 1 台のルータ
    として見えるようにして冗長構成を実現する
  • 複数のルータでグループ(VRRP グループ)を作る
  • VRRP グループごとに仮想 IP アドレスと仮想 MAC アドレスを割り当て
  • PC などのノードは仮想ルータの IP アドレスに対して通信
  • 通常時はグループのマスタルータが仮想ルータの IP アドレス(仮想 IP アドレス)を保持
  • マスタルータに障害が発生すると他のバックアップルータがこれを継承

P.377 レイヤ3スイッチ(L3スイッチ)

  • ルータと同じネットワーク層(第 3 層)の通信機器
  • 特徴
    • ルータ:ソフトウェアで転送処理
    • レイヤ 3 スイッチ:専用ハードウェアで転送処理
  • 高速処理できる:大容量のファイルを扱うファイルサーバへのアクセスなど

P.378 トランスポート層以上の層の接続

P.378 ゲートウェイ

  • トランスポート層(第 4 層)-アプリケーション層(第7層)でネットワーク接続するための装置
  • 第 3 層のネットワーク層まででエンドツーエンド(E2E)の通信は完成する
    • E2E = 通信を行う二者、あるいは、二者間を結ぶ経路全体
    • エンドツーエンド原理:高度な通信制御や複雑な機能は末端のシステムが担い、経路上のシステムは単純に信号やデータの中継・転送だけすべし
    • TCP/IP ネットワークの原理
    • 誤り訂正・フロー制御・再送:TCP 層(第4層、トランスポート層)など上位側の機器やソフトウェア・プロトコル
    • 単純な送受信・転送処理:IP 層(第3層、ネットワーク層)
  • ゲートウェイ:第 4 層のトランスポート層以上が違う LAN システム相互間のプロトコル・データ形式の変換を担う
  • ゲートウェイはアプリケーションプロトコルの内容を 解釈できる
    • アプリケーションヘッダの不正な情報混入を検出可能
    • ファイアウォール・プロキシサーバもゲートウェイの一種

P.378 L4スイッチ・L7スイッチ

  • L4スイッチ(レイヤ4スイッチ)はトランスポート層(第4層)の装置
    • 定義としてはゲートウェイ
    • 機能的にはレイヤ2スイッチ・レイヤ3スイッチの延長上
    • ルータやレイヤ3スイッチはIPアドレスを参照して経路制御する
    • L4スイッチではTCPポート番号やUDPポート番号も経路制御判断に使える:第4層の機器だから
  • L7スイッチ:アプリケーション層(第7層)までの情報を使って通信制御する

P.379 7.2.5 VLAN

  • VLAN(Virtual LAN:仮想LAN)
  • スイッチ(レイヤ2スイッチ,レイヤ3スイッチ)で物理的な接続形態とは独立に仮想的なLANグループを構成する仕組み,あるいはそう構成されたLAN
  • 複雑な形態のネットワークを楽に構築できる
  • サブネット構成も柔軟に変えられる

P.380 データ林宗の制御とプロトコル

  • データリンク層:第2層

中高の数学の復習から専門的な数学・物理までいろいろな情報を発信しています.
中高数学に関しては自然を再現しよう役に立つ中高数学 中高数学お散歩コース
大学数学に関しては現代数学観光ツアーなどの無料の通信講座があります.
その他にも無料の通信講座はこちらのページにまとまっています.
ご興味のある方はぜひお気軽にご登録ください!

  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

このサイトについて

数学・物理の情報を中心にアカデミックな話題を発信しています。詳しいプロフィールはこちらから。通信講座を中心に数学や物理を独学しやすい環境づくりを目指して日々活動しています。
  • このエントリーをはてなブックマークに追加
  • LINEで送る

YouTube チャンネル登録

講義など動画を使った形式の方が良いコンテンツは動画にしています。ぜひチャンネル登録を!

メルマガ登録

メルマガ登録ページからご登録ください。 数学・物理の専門的な情報と大学受験向けのメルマガの 2 種類があります。

役に立つ・面白い記事があればクリックを!

記事の編集ページから「おすすめ記事」を複数選択してください。