2022-01-01から1年間の記事一覧
先日、自宅の ONU を入れ替える機会があったのだが、その後、インターネットに接続できなくなるという現象が発生したので、今後のため、ここに書いておく。 ちなみに、自宅のインターネット構成は、ONU に無線ルーターを接続して、その無線ルーターに各種 PC…
golang で map を使って leetCode の典型的な問題を解いたので、今後の参考のために、書いたコードをここに残しておく。 重要そうなところは、ソース中のコメントに記載した。 type MagicDictionary struct { lengthToWords map[int][]string } func Constru…
簡単なやり方がすぐに見つからなかったので、ここにメモしておく。 以下のようにすると、1つ目の要素でソートできる。 int[][] matrix = new int[][]{{10,5},{3,4},{9,2}}; Arrays.sort(matrix, (a, b) -> a[0] - b[0]); 結果は、[3, 4] -> [9, 2] -> [10, …
leetCode の以下の問題を Union-Find 木を使って解いた。 https://leetcode.com/problems/smallest-string-with-swaps/今後の参考のために、自分の書いたコードを載せておく。 import java.util.*; public class SmallestString { public String smallestStr…
ネスペ平成28年の午後2の問題より。 複数の ISP 環境において web サーバを NAT 機能付きの LB 経由で公開している場合、クライアントからの通信について、行きと帰りで同じ ISP を経由するように応答しないと、クライアントが応答を受け取れない。 これ…
VXLAN とは、L3 ネットワーク上に L2 ネットワークを構築するオーバーレイネットワーク技術である。 L2 ネットワークにおけるブロードキャストをシミュレートするためにマルチキャストを使用する。例えば、arp 要求はマルチキャスト (宛先は送信元と同じマル…
平成27年のネスペの午後2問2を解いていて学習した内容を書く。 スイッチがMACアドレスとポートの対応を学習するのは、スイッチに接続された機器からのフレームの送信元MACアドレスによるものである。通常、宛先MACアドレスからは学習しない。MACアドレス…
NAT444 とは、global address, shared address, private address の 3 種類の IPv4 アドレスを用いたネットワーク構成のこと。 shared address はちょっと聞きなれないが、これは ISP のネットワーク内で使用され、グローバルアドレスの節約に貢献する。これ…
ネスペの問題を解いていると良く出てくる GARP (Gratuitous ARP) について簡単にまとめる。 GARP は自分の IP アドレスに対する MAC アドレスの解決のために使われる。その目的は、自分と同じネットワークにいる機器の ARP キャッシュの更新や重複 IP アドレ…
ネスペの問題を解いていて、ブロードキャストには2種類あるということを知った。 192.168.0.255 のように良く見かけるブロードキャストは Directed ブロードキャストと言われるもので、それ以外に Limited (限定的) ブロードキャストというものがある。 Lim…
ファイルが utf8 かどうかの判定は、以下のように簡単にできる。 fp, err := os.Open(filename) if err != nil { fmt.Println("Can't open file.") os.Exit(1) } defer fp.Close() scanner := bufio.NewScanner(fp) for scanner.Scan() { line := scanner.Te…
H25年のネスペの午後2の問1を解いていて思ったことをここに書いていく。 ネスペの午後問題で、スイッチスタックを絡めたリンクアグリゲーションや STP などの設問を解く際、スタックスイッチを1台のスイッチとして考えないと、解けない問題がある。 例え…
Java の keystore のタイプとして以下をよく見かける。これらの違いがよく分かっていなかったので、ここに簡単に纏める。 なお、keystore は、公開鍵証明書とそれに対する秘密鍵を格納する場所のこと。Java アプリが SSL/TLS 通信を行う時などに使用される。…
ネスペの勉強をしていて、シンクライアントで (RDPのような) 画面転送方式を採用することのメリットについてメモしておく。 画面転送で使用する帯域は、せいぜい 0.2 Mbps 程度とのこと。つまり、WAN やインターネット側での帯域消費を少なくすることができ…
ネスペでよく出てくるネタなので、ここに纏めておく。 DNSサーバには、コンテンツサーバとキャッシュサーバの2種類がある。キャッシュサーバはフルリゾルバとも言われる。 コンテンツサーバは自分の管轄のドメインの情報を外部に返すもので、キャッシュサー…
結論から言うと、両方。 名前解決の問い合わせには通常 UDP を使用する。なお、DNS 応答パケットのサイズが512 バイトを超えると、TCP で通信が行われる (TCPフォールバック)。 DNS サーバ間のゾーン転送には TCP が使用される。
ネスペの令和元年の午後2の問2を解いていて、自分が分かっていないところがあったので、ここにメモしておく。 例えば、 PC ----- プロキシ ----- webサーバ という構成があって、PC が web サーバにアクセスする時、誰が web サーバの DNS 名前解決を行う…
git rebase -i で履歴をいじる際にコンフリクトが発生することがある。この時、コンフリクトの解消の仕方次第では、コミットが消えることがある、というのが今回の話題。今回取り上げる題材は以下。 $ cat test.txt 111 222 333 444 $ git log --oneline 6c0…
VLANインタフェースやVLAN間ルーティングについては、ネスペの平成29年の午後1の問1を解いてみるといろいろ分かる。これは良問だと思う。 参考として、ここに問題文に登場するネットワーク構成図を載せておく。 ネスペ平成29年午後1の問1の図2 この…
平成30年のネスペの問題を解いていて、自分に足りない観点があったので、ここにメモしておく。 ネットワーク機器のインタフェースの状態は、例えば、SNMPマネージャなどが ifOperStatus や ifAdminStatus 等から取得できるが、それ以外にも、対象の機器に…
ネスペの平成30年の午後2の問題を解いていたところ、NAT について自分が理解できていないところがあったので、ここに簡単にまとめる。 具体的には、NAT 先ネットワークの通信先の、こちら側 (NAT前) でのネットワークにおける IP をどこに振るのかという…
平成30年のネスペの午後2の問題を解いていて知った内容。 TCPで送信中、受信端末の瞬断したりして、TCPコネクションが開放されてしまうと、TCPの再送は実施されなくなる。 このケースにおいてもデータを再送したい場合は、アプリ側で独自に再送処理を行う…
サーバ認証はクライアント側がサーバの正当性を確認して、クライアント認証はサーバ側がクライアントの正当性を確認するもの。 TLSでは、サーバ認証は必須だが、クライアント認証はオプションである。
ネットワークスペシャリストの勉強をしていて、認証と認可について学んだので、ここに書いていく。 認証と認可は似ているが意味がちょっと違う。 認証は、アクセスしている人が本人かどうかを判定するためもの。一方で、認可は、その人が何の権限を持ってい…
leetCode の https://leetcode.com/problems/two-city-schedulingを、golang と Java で解いたのだが、2次元配列(スライス)の sort の処理を書いたので、今後の参考のため、ここに残しておく。 package main import "sort" func twoCitySchedCost(costs [][…
golang のソースを見ていると、 interface{} というのが出てくることがある。 これは、空のインタフェースというもので、任意の型の値を入れることができる、というものらしい。 golang は、静的型付けの言語であるが、事前にそこに入ってくる型情報が分から…
golang のコードから gorm を使って postgres にアクセスして、CRUD を行う時の実装例をメモとして残しておく。 実行環境は以下の通り。 Windows 10 Postgres 14.2 go 1.17.6 (windows/amd64) gorm gorm のインストールは以下で実施した。 go get -u gorm.io…
golang の勉強をしていて、以下の情報を見つけた。 1 つの err 値を使いまわすことができます。特に,長い if-else があるときに頻繁に使用されます。 Go の良い書き方 - Go 言語 一般的に、変数の使い回しは、変数のスコープが広くなるので推奨されていない…
golang で関数を作成する際、引数を値渡しにするか、参照渡しにするのか、迷うことがあった。いろいろな記事を読んで、今のところの結論は以下。 関数内で、引数で渡ってきたものに対する編集が必要な場合、つまり、関数の外側の世界に副作用を起こしたい場…