【ネットワーク】お勉強6

【第12回】Datalink層 概要
Datalink層の機能:データの伝送制御
IEEEのLAN仕様ではレイヤ2を更に2つに分けている.
論理リンク制御副層(LLC)メディアアクセス制御副層(MAC)

LLC副層では実際の危機に依存しない部分を取り決めている.
エラー制御(レイヤ4でも行うがここではビットのチェックなど)や上位サービスの指定など.

MACHINE副層ではメディアの接続を取り決める.
どのように共有メディアでデータを送信するかという点を決める.
これにはメディアアクセス制御などがある.
メディアアクセス制御とはどのように共有メディアにアクセスするかということ.
誰が送信を行うかを制御する.

MAC副層でどのように送るかを決定しLLC副層でどのように扱うかを決定する.


実際のLAN機器はレイヤ1とレイヤ2をまたがった機能を持ち合わせていることが多い.
イーサネット」とはレイヤ2とレイヤ1にまたがる規格である.
イーサネットIEEE802.3はほぼ同一,相互互換.


レイヤ2でのカプセル化
パケット→フレーム
レイヤ3から流れてきたパケットをレイヤ2のLLC副層でアドレス,エラー制御情報などのリンク制御用の情報が付け加えられる.
次にMAC副層でメディアアクセス用の制御情報を更に付加する.この状態のデータをフレームという.
3 Minutes Networking No.12

【ネットワーク】お勉強5

【第10回】Physical層リピータハブ
大まかな説明:信号を増幅したり分配する役割

リピータは弱まったりノイズが入った信号を増幅や整形をして元の信号と同じ強さ,同じ形に直す役割をする.
信号を増幅するだけで制御はしない.

ハブは別名マルチポートリピータという.
多くのケーブルを差し込むことのできるリピータのこと.
来たデータをすべての機器に増幅して流す.

信号がぶつかってしまう(コリジョン)可能性のある範囲のことを衝突ドメインという.
ハブは信号を流すだけなのでこの衝突ドメインを広げてしまう.
衝突ドメインを狭くするにはスイッチやルータを用いる.

ハブ,リピータは時間のロスがあるので途中経由してよい数が決められている.
10BASE-Tなら4つ


【第11回】Physical層 ネットワークトポロジ
実際の危機とメディアの配置を物理トポロジという.
ノードとリンクを使って表現する.
ノードはコンピュータやネットワーキングデバイス,リンクはメディアと考える.

3 Minutes Networking No.11

【ネットワーク】お勉強4

【第8回】Physical層,信号と回線について
信号には2種類ありデジタルとアナログである.
電話はアナログ信号でやり取りを行う.
信号は回線の種類に依存する.
一般電話回線を使用して通信する場合はMODEMを要する.
デジタル回線ではISDNが有名.

電気信号には障害が起こる.
減衰,ノイズ,衝突が主なもの.
減衰はケーブルの抵抗から信号が弱まること.
ノイズは電気信号の形が崩れてしまうことである.
衝突(コリジョン)は2つのデータが同時に流れた場合発生し信号がぶるカルト電圧が変になり元の信号と違う形になること.


【第9回】Physical層ネットワーキングメディア
ネットワーキングメディアの企画団体,IEEE,EIA/TIA,UL
3種類のケーブルがあり,同軸ケーブル,ツイストペアケーブル,光ファイバケーブル

  • 同軸ケーブル
    • 長所
      • 鑑賞に強い
      • 長距離まで信号が届く
    • 短所
      • 硬い
      • 高価
  • ツイストペアケーブル

現在のLANケーブルの主流

    • 長所
      • 2本*4束の銅線が入っている,銅線から発生する磁場を互いに打ち消し合って消滅する働きを持つ(キャンセレーション)
      • シールドがないので柔らかい
      • 安価
    • 短所
      • 長距離まで信号が届かない.
  • 光ファイバケーブル
    • 長所
      • 一切の電磁的な干渉を受けない.
      • 高速
    • 短所
      • 高価
特徴 同軸 UTP 光ファイバ
干渉 強い キャンセレーションで防ぐが弱い 光信号のため影響なし
値段
敷設
速度
コネクタ BNCコネクタ RJコネクタ マルチモードコネクタ

ネットワーキングメディアの規格
10BASESの頭の10はデータ転送量を表し1秒間に10Mbits運べるということ.
BASEはデータ伝送方式でベースバンド伝送のこと.信号を直接多重化しないで送る方式.

【ネットワーク】お勉強3

【第7回】LANの機器
プリンタやPCのことをホストという.
ケーブルのことをネットワーキングメディアという.

ケーブルとPCをつなぐ機器をNICという.
これはニックと言い, PCのM/BのPCIスロットに差し込むLANボードのことである.

ネットワーキングデバイスの役割
レイヤ1,2,3に沿った役割がある.

  • レイヤ1,Physical層

リピータハブがケーブルに流れる電気信号を増幅したり分配したりする.

  • レイヤ2,Data-link層

ブリッジとスイッチがデータを通す,通さないという制御を行う.

  • レイヤ3,Network層

ルータが宛先までのルートを決定する.

3 Minutes Networking No.7

【ネットワーク】お勉強2

【第6回】OSI参照モデルのデータの流れ
送信元から宛先へ送るとき,運びたいものをデータ,それを入れたダンボール全体をデータユニットという.
送信処理(宛先を書いたり,ダンボールに入れたりする)の理由はデータを守ったり,運びたい場所を指定するため.つまり運びたいもの(データ)以外のものも必要.

OSI参照モデルでは上の層から順番に制御データをつけていく,最下層のレイヤ1までいくと電気信号化されて相手に送られる.
Transport層で制御データを付加し,これをセグメントという.
Network層でさらに制御データを付加しこれをパケットという.
Datalink層でさらに制御データをつけ,これをフレームという.
Physical層でビット列に変換し,電気信号に変換しケーブルに流す.
このように制御データをくっつけてデータグラムに仕上げることをカプセル化という.
データユニットはデータ,セグメント,パケット,フレームの総称.
受信側は受け取ったカプセルを剥がしていく.

3 Minutes Networking No.6

【ネットワーク】お勉強1

【第3回】

  • プロトコル  ネットワークの約束事
  • TCP/IP  プロトコルの一種で最も有名
  • 帯域幅  毛0ブルの性能規格を説明するときに使う言葉で本来の意味は使用できる周波数,最近はデータ転送速度を指す
  • bps  一秒間に何ビット送れるかの単位

【第4回】

第7層 Application Layer
第6層 Presentation Layer
第5層 Sessiion Layer
第4層 Transport Layer
第3層 Network Layer
第2層 Data-Link Layer
第1層 Physical Layer

【第5回】

各レイヤでは機能が違い,独立している.
特定の機能を理解するためにはそのレイヤだけを考えればよい.
機能変更があってもそのレイヤ以外に影響が及ばない.

  • Application Layer

ネットワークサービスを提供
ネットワークが可能かどうか判断する.

  • Presentation Layer

データの形式を決定する.

  • Session Layer

セッションを管理する.
会話(通信)の行き違いがないように会話の流れを管理する.

  • Transport Layer

信頼性の高い通信サービスを保証する.
信頼性の高いとは相手に確実に届けるなど.

  • Network Layer

離れた場所とのデータの伝送,運ぶルートの決定,宛先の決定などを行う.

  • Datalink Layer

近くの機器とのデータの伝送制御を行う.

  • Physical Layer

電気,機械的なルールを決める.
電気信号をやり取りする.

【環境設定】Ctrl + Spaceで日本語入力

「定義済みのキーマップからインポートで好きなものをインポート(任意)」と書いてあったがMS-IMEでないとうまくいかなかった.
また設定後新しいアプリケーションから設定が有効になるので注意.
d.hatena.ne.jp

【Python】ループ中の要素の削除

for element in LIST:
    if ---:
        LIST.remove(element)

for i,enumerate in LIST:
    if ---:
        del LIST[i]

上でValueErrorが出たが下で書きなおしたら出なくなった.
全体の処理的には同じ位置を削除するようにしたつもりだけど何故だろう.

k-means法 準備

k-means法で理想的な結果が出せるようにデータを予めプロットしておく方法

# -*- coding: utf-8 -*- impo
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
X,y = make_blobs(n_samples=150, #サンプル点の総数
                n_features=2,   #特徴量の個数
                centers=5,      #クラスタの個数
                cluster_std=0.5,#クラスタの標準偏差
                shuffle=True,   #サンプルをシャッフル
                random_state=0) #乱数生成器の状態を指定
plt.scatter(X[:,0],X[:,1],c='blue',marker='o',s=30)
plt.grid()
plt.show()

plt.scatter()の色指定はcolorはcでもイイらしい.
横軸にX[:,0],縦軸にX[:,1]をセット
X[:,0]はXの全ての要素の1つ目の要素という意味

plt.scatter(X[:,0],X[:,1],c='blue',marker='o',s=30)

f:id:umashika5555:20170411075422p:plain

Irisのデータプロット

# -*- coding: utf-8 -*- impo

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
#データの取得
df = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data",header=None)
df.tail()
#1-100行目の目的変数の抽出
y = df.iloc[0:100,4].values
#Iris-setosaを-1,Iris-virginicaを1に変換
y = np.where(y=="Iris-setosa",-1,1)
#1-100行目の1,3列目の抽出
X = df.iloc[0:100,[0,2]].values
#品種setosaのプロット(赤の○)
plt.scatter(X[:50,0],X[:50,1],color='red',marker='o',label='setosa')
#品種versicolorのプロット(青のx)
plt.scatter(X[50:100,0],X[50:100,1],color='blue',marker='x',label='varsicolor')
#軸のラベルの設定
plt.xlabel('sepal length [cm]')
plt.ylabel('pepal length [cm]')
#判例の設定
plt.legend(loc='upper left')
#図の表示
plt.show()

ラベルの変換方法
名前(文字列)を数値に変換

y = np.where(y == 'Iris-setosa',-1,1)

1-100行目の1,3列目の抽出をする.

X = df.iloc[0:100,[0,2]].values

f:id:umashika5555:20170411073916p:plain

1-50行目の1つ目の要素をX軸に2つ目の要素をY軸とし青xをプロット

plt.scatter(X[:50,0],X[:50,1],color='blue',marker='x',label='varsicolor')

f:id:umashika5555:20170411075055p:plain

Tweepy

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import tweepy

CONSUMER_KEY = '-----------------------'                             # Consumer Key
CONSUMER_SECRET = '-----------------------'         # Consumer Secret
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
ACCESS_TOKEN = '-----------------------' # Access Token
ACCESS_SECRET = '-----------------------'         # Accesss Token Secert
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)

#APIインスタンスを作成
api = tweepy.API(auth)

# これだけで、Twitter APIをPythonから操作するための準備は完了。
print('Done!')

#タイムライン上の最新ツイートを参照する
print api.home_timeline()[0].text

#自分のアカウントでつぶやく
api.update_status(status='test from Tweepy')  

#ツイート検索
#エラー出た
search_result = api.search(q='もふもふ')
for result in search_result:
    print result.text

www.statsbeginner.net

k-means法問題点

【k-means法の問題点】
空になるクラスタが存在する可能性があること.(Fuzzy C-means法(k-medoids)ではこの問題は生じない.)
scikit-learnのk-means実装ではこの問題には対処できている.
クラスタが空の場合,空のクラスタのセントロイドから最も離れているサンプルを探す.この最も離れた点がセントロイドになるようにセントロイドの割当を変更する.


クラスタがオーバーラップしない,階層的ではない.

クラスタに少なくとも1つアイテムが存在することが前提.