やさしいJAVA 活用編第6版 テーブルビューの表示

テーブルビューの表示

f:id:Pavilion2021:20220122091226p:plain

設計の考え方が理解できないので自分用メモ

①コントロール(テーブルビュー)の作成

tv = new TableView<RowData>();

②コントロール(列)の設定

(「日付列」と「営業列」の作成)

TableColumn<RowData, String> tc1 = new TableColumn<RowData, String>("日付");

TableColumn<RowData, String> tc2 = new TableColumn<RowData, String>("営業");

(列 tc1 と tc2 をプロパティ "date" と "business"と紐づける)

tc1.setCellValueFactory(new PropertyValueFactory<RowData, String>("date"));

tc2.setCellValueFactory(new PropertyValueFactory<RowData, String>("business"));

データの作成

ObservableList<RowData> ol = FXCollections.observableArrayList();

for(int i=0; i<50; i++){ol.add(new RowData(i));}

列をテーブルビューに設定

tv.getColumns().add(tc1);

tv.getColumns().add(tc2);

データ(ObservableList<RowData> ol)をテーブルビュー(tv)に設定

tv.setItems(ol);

==================================================

データクラスの記述

   //RowDataクラスの設定
   public class RowData
   {
      private final SimpleStringProperty date;
      private final SimpleStringProperty business;

      public RowData(int row)
      {
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy/MM/dd");
         LocalDateTime t = LocalDateTime.now();
         LocalDateTime d = t.plusDays(row);

         this.date = new SimpleStringProperty(df.format(d));

         if(d.getDayOfWeek() == DayOfWeek.SUNDAY) this.business = new SimpleStringProperty("休業日です。");
         else this.business = new SimpleStringProperty("営業日です。");
         }

         public StringProperty dateProperty(){return date;}
         public StringProperty businessProperty(){return business;}

   }

SDN

CCNA受験まであと1か月

今回は正答率の低いSDNについてまとめてみました。

 

SDN(Software-Defined Networking)

ソフトウェアによりネットワークを管理・制御するための新しい考え方と技術

用語整理

SDNを理解する上で、ルーターやスイッチの内部構造についての用語を知る必要がある

データプレーン

ルーティングテーブルの検索MACアドレステーブルの検索、パケットのカプセル化、非カプセル化、IEEE802.1Qのタグの追加、削除、NAT変換、フィルタリングなど、データ転送を行ったり、その際に必要な様々な処理を行う領域

コントロールプレーン

データプレーンを制御する部分。ルーティングテーブルの作成MACアドレステーブルの作成ARPによるアドレス解決など。

マネジメントプレーン

ネットワーク機器の構成・設定を管理する部分。直接的にデータの転送処理には関わらない。TELNETSSH,SNMP、Syslogなどの様々な管理用プロトコルにより、機器の操作・管理機能を提供する部分。

 

従来のネットワーク構成ではそれぞれの危機上でコントロールプレーンとデータプレーンが動作し、機器を1つ1つ設定・管理する必要がある。規模が大きくなればなるほど機器の管理は複雑化し、容易ではなくなる。

 これに対して、SDNでは、データプレーンの処理とコントロールプレーンの処理を分けて考える。コントロールプレーンで行う各種テーブル作成などの処理はネットワーク上に配置した、SDNコントローラで集約し一括で行う。

 

・SDNのアーキテクチャは以下の3つのレイヤに分かれている。

①アプリケーションレイヤ(SDNコントローラを操作するアプリ)

   ↕(N)ノースバウンドAPI

②コントロールレイヤ(SDNコントローラ)

   ↕(S)サウスバウンドAPI

インフラストラクチャーレイヤ(ルータなどのネットワーク機器)

 

(N)ノースバウンドAPI REST API(RESTful API)

(S) サウスバウンドAPI OpenFlow、NETZCONF、RESTCONF、OpFlex

            従来の機器でも使用可能→TELNETSSHSNMP

 

 

NAT

NAT(Network Address Translation)について簡単に内容をまとめました。

 

NATはIPアドレスを変換する技術で以下の3種類がCCNA試験では問われる。

①スタティックNAT

②ダイナミックNAT

③PAT(Port Address Translation)

 

スタティックNATは、特定のローカルアドレスと特定のグローバルアドレスを1対1で対応づける。同時に使用したいホストの個数分、グローバルIPアドレスを使用する。

コマンド構文

(config)# ip nat inside source static 内部ローカルアドレス 内部グローバルアドレス

ダイナミックNATは、ローカルアドレスとアドレスプールを対応付ける方式。アドレスプールの中で使われていないIPアドレスを動的に割り当てる。

コマンド構文

(config)#access-list 番号 permit 内部ローカルアドレス ワイルドカードマスク

(config)#ip nat pool プール名 開始アドレス 終了アドレス netmask(サブネットマスク) | プレフィックス

(config)#ip nat inside source list ACL番号 プール名 [overload:PATを行う場合にはこのoverloadを入力]

(config-if)#ip nat inside|outside

③PAT(IPマスカレードやNAPTとも呼ばれる)は、複数のローカルアドレスに対して1つのグローバルアドレスを対応付ける方式。PATはIPアドレス変換の際に、IPアドレスの他にTCP/UDPポート番号も併せて記憶する。

Qos

Qos(Quality Of Service:サービスの品質)

 

Ping-tでCCNAの問題を解いていると良く間違うQoSについてまとめてみました。

 

Qosとは、特定のパケットを優先的に処理したり、帯域幅の確保を行う技術

 

輻輳管理

輻輳回避

・帯域制御 からなる。

 

輻輳とは物が1か所に集中し混雑する様態をいう。

 

輻輳管理FIFO,PQ,CBWFQ,LLQ)

輻輳管理では、以下を行います。
・分類:QoS適用対象となるパケットを分類する
・マーキング:分類されたパケットに優先度識別用の印を付ける
・キューイング:パケットに付けられたマークを使って、それぞれの優先度に応じたキュー(パケットを溜めるバッファ)に格納する
・スケジューリング:各キューからデータを取り出して送信する

FIFO(First In First Out)はパケットを受信した順に転送する

・PQ(Priority Queing)は優先度の高いパケットの転送を完全に優先する

・CBWFQ(Class-Based WFQ)はクラスという単位でキューを設定する。クラスごとに最低保証帯域幅を指定する

・LLQ(Low Latencey Queing) PQ+CBWFQ=優先度の高いパケットを最優先で転送しながらも、優先の低いパケットもある程度転送する

 

輻輳回避(RED WRED)

輻輳回避は、輻輳によるテールドロップが発生する前にキューに待機しているパケットをドロップする

テールドロップとはキューが一杯になったときに後から届いたパケットを全て破棄すること

・RED(Random Early Detection:ランダム早期検出)はキューに溜まっているパケットの量に応じて「ノードロップ」「ランダムドロップ」「フルドロップ」の3つのモードで動作する

 ノードロップ パケットの量がしきい値以下の状態。パケットをドロップしない

 ランダムドロップ パケットの量が最小しきい値を超えた状態で、設定した割合に基づきパケットをドロップする。

 フルドロップ パケットの量が最大しきい値を超えた状態で、着信パケットを全てドロップする(テールドロップ)

 

WREDは、REDの破棄率を優先度ごとに設定できる

 

帯域制御(シェーピング/ポリシング)

帯域制御は、利用する帯域幅(通信速度)を制御する機能です。企業ネットワークでは、主にWAN境界で帯域制御が必要になります。

(Committed Information Rate:最低保証速度)を超えて送受信したデータは、輻輳時に破棄される可能性が高くなります。
このような場合に適用するQoSツールとして以下の2つがあります。

・シェーピング(ネットワークへデータを送信する側で実装)

・ポリシング(ネットワークの入り口で実装)

 

参考文献:Ping-t CCNA 最強WEB問題集 解説

CCNA受験対策

2022年の1月30日(日)CCNA受験

 

申し込みをしてきました。ping-t様にも3か月間のプレミアム会員登録をし、日々勉強しています。最初の100問くらいは正答率が40%くらいしか取れず、本当に取れるか不安でしたが、900問を超えたあたりで80%くらいの正答率を出せるようになりました。(900問のうち半分くらいは2回以上解いている状態)

 

受験までの間、CCNAの問題ネタに触れたいと思います。