・OSIモデル
     http://www.infraexpert.com/study/networking3.html
     https://thinkit.co.jp/story/2015/04/28/5799

     7 アプリケーション層
     6 プレゼンテーション層
     5 セッション層
     4 トランスポート層       TCP/UDP...
     3 ネットワーク層         IP
     2 データリンク           MAC
     1 物理層                 ケーブル

・MACアドレス
  ・通信ボードに製造時に割り付けられた番号
    製造者(3Bytes)+シリアル番号(3Bytes)
    arp -aで調べる

・IPV4とIPV6
  ・IPV4 - version 4 32ビット
  ・IPV6 - version 6 128ビット
  ・IP枯渇問題
    ・すでにIPV4はIPが枯渇している
    ・IPV4からIPV6に移行しようとしている
    ・しかし難しい問題もある(らしい)
      http://techblog.yahoo.co.jp/infrastructure/ipv6/dualstacktunnel/
  ・両対応しているマシンではIPV6が優先
    ・ping -4 でIPV4でpingする
    ・Javaでは以下のエラーが発生することがある
      ・SocketExceptionでSocketException 無効な引数が指定されました
      ・対策 - 以下のどちらかをやる
        ・起動引数に -Djava.net.preferIPv4Stack=true を指定
        ・プログラムで System.setProperty("java.net.preferIPv4Stack","true");とする


・グローバルIPとプライベートIP
  ・NAT(Network Address Translation)
  ・両方のアドレスを変換する仕組み
  ・これによりローカルネットのパソコンにグローバルIPを割り当てる必要がなくなる
  ・プライベートアドレス
    クラス     アドレス範囲
    クラスA     10.0.0.0 ~ 10.255.255.255
    クラスB     172.16.0.0 ~ 172.31.255.255
    クラスC     192.168.0.0 ~ 192.168.255.255
    ・上記以外がグローバルアドレス


・サブネットマスク
  ・ネットワークの大きさを表す
  ・ネットワーク部とホスト部
  ・ipconfigで確認できる
  ・255.255.255.0
    ・上記を /24 と表記する
    ・左3バイトがネットワーク部、右1バイトがホスト部
  ・ホスト部が大きいほど接続できる機器の数が多い
  ・/24の場合
    0(先頭)はネットワークアドレス
    255(最後)はブロードキャストアドレス
    最大254台の機器が接続できる⇒うちルータに一台が必要

・IPアドレスとポート番号
    ・IPはコンピュータにつけられた番号
      ・MACアドレスと違い後で設定する
    ・ローカルIPとグローバルIP
    ・ポート番号によって対応するアプリケーションが特定される
      ・well-known port参照
      ・注、ポート番号の物理的実体はない
        ・IPバケットの中の数値

・well-known port
  ・http://e-words.jp/w/%E3%82%A6%E3%82%A7%E3%83%AB%E3%83%8E%E3%82%A6%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88.html
  ・用途(プログラム)が決まっているポート
  ・0~1023番のポート
  ・例
    25    TCP/UDP    SMTP (Simple Mail Transfer Protocol)
    80    TCP/UDP    HTTP (Hypertext Transfer Protocol)
    110    TCP    POP3 (Post Office Protocol version 3)
    123    UDP    NTP (Network Time Protocol)
    143    TCP/UDP    IMAP2/4 (Internet Message Access Protocol version 2/4)
    3306 MySQL

・TCPとUDP
  ・UDP
    ・到達確認を行わない
    ・スピードが速い
    ・動画の送信など
  ・TCP - 重要なものはTCPを使用する
    ・到達確認を行う
    ・UDPに比較しスピードが遅い
    ・電子メール、HTTP、その他..

・通信の種類
  ・ユニキャスト(UniCast)       - 特定の相手に送信
  ・マルチキャスト(MultiCast)   - 複数の相手に送信
  ・ブロードキャスト(BroadCast) - 範囲内のすべてのアドレスに送信
  ・エニーキャスト(AnyCast)     - 同一アドレスの複数台に送信
                                - 特殊なもの、RootDNSなど
・通信の仕組み
  ・最終的にはMACアドレスに対して通信する
  ・ドメイン名⇒IPの変換
    ・DNSの動作
    ・file:ドメイン→IPアドレス.pdf
  ・IP ⇒ MACアドレスの変換
    ・MACアドレスを求めるためにブロードキャストする
    ・当該IPを持つマシンがMACアドレスを返信する
    ・file:IP⇒MAC.pdf


・インターネット上の通信の仕組み
    file:インターネット上の通信.pdf
  ・世界は数多くのネットワークで構成されている
  ・目的のパソコン(IP)に通信するためには、複数のネットワークを経由する
  ・ネットワーク同士はルーターを介して接続されている
  ・一つのネットワークには複数のルータが接続されている
  ・ルータは目的のIPに通信するには、ネットワーク内のどのルータ(IP)に送信すればよいかが分かっている
    ・この情報は世界中のルータ同士が通信し合って作成する
  ・送信相手のルータ(IP)のMACアドレスはブロードキャストで取得する
  ・MACアドレスが分かったので、それに対して送信する

□ Windows通信関連コマンド
・ping - 相手と通信できるか
  ・pingが通らない場合
    ・ケーブル切断、ファイアウォール、相手ダウン、ping拒否
・ipconfig - 自分のIPアドレスを調べる
・netstat - ネットワーク統計や状態を確認する
・tracert - 相手へのルートを調べる
・nslookup - DNSサーバーの状態
・arp - MACアドレスの問合せ arp -a


//---------------------------------------------------
//・目次 - スレッドと通信
//  http://blogs.yahoo.co.jp/artery2020/40575722.html
//・目次 - Java入門
//  http://blogs.yahoo.co.jp/artery2020/39975776.html
//・目次 - ビジネスパーソンの常識と非常識
//  http://blogs.yahoo.co.jp/artery2020/39728331.html
//・目次 - 論理・発想・思考についての考察と鍛え方
//  http://blogs.yahoo.co.jp/artery2020/39657784.html
//---------------------------------------------------