sti320a

勉強したことのまとめ

ネットワーク/Numpyに関する問題_2020年04月05日

ネットワークに関する問題

  • ネットワーク層において、制御メッセージの送受信や診断に用いられるパケットを何というか。
ICMPパケット
  • 米国の商品返品システムにおいて使用される、返品確認のための番号を何というか。
RMA(Return Material Authorization)番号
  • TCPフラグを6つすべて答えよ
URG, ACK, PSH, RST, SYN, FIN
  • TCPフラグの1つである PSH はどのような目的で使用されるか。
受診者側でデータをバッファリングするのではなく、上位階層に引き渡すことを要求する
  • RST はどのような目的で使用されるか
コネクションのリセット
  • SYN はどのような目的で使用されるか
コネクションの先頭で、シーケンス番号を同期させる
  • FIN はどのような目的で使用されるか
コネクションを正常終了させる
  • 3ウェイハンドシェイクの第一ステップで、クライアントからサーバーに送信する際のパケットの SYN フラグと ACK フラグの状態をそれぞれ答えよ
SYN オン ACK オフ(SYNパケット)
  • これらは第二ステップでサーバーからクライアントに送信するパケットではどうなるか
SYN オン ACK オン (SYN/ACKパケット)
  • 第三ステップでクライアントからサーバーに送信するパケットではどうなるか
SYN オフ ACK オン(ACKパケット)
  • 非スイッチングネットワークにおいて、イーサネットのパケットはネットワーク上のすべての機器に送信される。通常、各機器は自身に関係のあるパケットのみを上位階層に引き渡すが、設定をあるモードに変更すると、すべてのパケットを読むことができる。この、あるモードとは何か。
プロミスキャスモード
  • プロミスキャスモードへの変更を ifconfig を用いて行う際のコマンドを書け。対象の機器を eth0 とする
ifconfig eth0 promisc
  • 他の機器あてに送信されるパケットをキャプチャする行為を何というか
スニッフィング
  • パケットキャプチャをコマンドラインから実行する際に使用可能なツールを1つ答えよ
tcpdump
  • スニッフィングツールの1つで、ユーザ名とパスワードの検索に特化した、Dug Song 氏によるプログラムの名称を答えよ
dsniff
  • スイッチングネットワーク環境では、パケットは本来の宛先の機器にしか送信されない。しかし、送信元アドレスが正規のものであることを保証する仕組みがないため、送信元の詐称が可能である。この行為のことを何というか。
スプーフィング

Numpyに関する問題

  • numpy.empty((1,2,3)) の戻り値について説明せよ
shapeが (1,2,3) で値が初期化されていない array を返す。
  • numpy.empty() の戻り値の配列について、配列にはランダムな値が入っているように見えるが、実際にはランダムではない。どういうことか説明せよ。
numpy.empty() は、引数に与えられた shape を扱えるようにメモリを確保する。このとき、メモリの値は初期化しない。つまり、numpy.empty() が確保したメモリに格納された既存の値が、そのまま配列の値となる。 numpy.empty() が確保したメモリ領域に 3.14, 3.15, 3.16 という値が格納されていれば、戻り値の配列には、それらの値が格納されている。確保されたメモリに格納されていた値が人間にとって理解しやすい値になっているとは限らないため、ランダムに見える場合がある。
参考: https://stackoverflow.com/questions/54379325/numpy-empty-array-not-giving-random-float-after-defining-normal-numpy-array
  • numpy で ndarray を生成する関数の引数 order には、'C' または 'F' が指定できる。それぞれ何を意味するか。
'C' ... メモリ内の要素をClang 風(行ごと)の配置順にする。 
'F' ... メモリ内の要素を Fortran 風(列ごと)の配置順にする。
  • 以下、それぞれの属性が何の情報を持っているか答えよ
1.ndarray.size
2.ndarray.itemsize
3.ndarray.ndim
4.ndarray.shape
5.ndarray.dtype
6.ndarray.nbytes
1.要素数
2.1要素のバイト数
3.次元
4.ndarrayオブジェクトの形状
5.要素のdtype
6.メモリに使われる総バイト数(たぶん ndarray.size * ndarray.itemsize)
  • ndarray.reshape() を実行すると ndarray のオブジェクトが新規に作成される。OかXか。
X。reshape では形状を変更するが、配列のビューの形状を変更するだけで、オブジェクトを新規に作成することはない。
また ndarray は immutable であるため、要素が変更されることもない。
  • ndarray.resize() を実行すると ndarray のオブジェクトが新規に作成される。OかXか。
ndarray は immutable であるため、サイズを変更する際には、新規にオブジェクトを作成する。
  • 次のメソッドを実行した場合の出力を答えよ
g = np.array([[1,2,3],[4,5,6]])
np.resize(g, (3,1))
array([
[1],
[2],
[3]
])