学習忘備録

学習のアウトプットや感じた事を発信していきます

技術記事ノック #66~#83

ARP

 

WebSocket

SNS等の登場によって、リアルタイムなやりとりが求められるようになる。

これをHTTP通信で実現しようとすると難しい。

この問題を解決するためにWebSocketという新しいプロトコルが生まれた。

仕組み
  • サーバとクライアントが一度コネクションを確立すると、その後の通信を専用プロトコルで行う。
    • サーバプッシュ機能
      • 一度コネクションを確立した後は、どちらからも通信を行うことが可能。
    • 通信量削減
      • 一度コネクションを確立すると、そのコネクション上で通信を行う(HTTPのように、通信のたびにコネクションを作らない
        • ※HTTPはステートレス
      • ヘッダのサイズが最小2byte, 最大14byteと小さい
  • ハンドシェイク
  • 双方向通信の実現

 

ICMP

  • Internet Control Message Protocol
  • IP通信の疎通状態を確認したり、問題が有る時にエラー情報を返す、「IP通信を補助するプロトコル
  • IPと同じネットワーク層
  • ICMPの機能の一部にpingがある
  • ポート番号の概念はないが、その代わりにタイプ番号とコード番号がある

 

Memo

  • sortコマンドで気をつけること
    • 半角スペース複数区切り

    • 列でソートする場合に複数個あるとそこも列と認識されてしまう

      -bオプションを付ければよい。するとこの謎仕様は治まり、他の多くのUNIXコマンドと同様、連続する半角スペース全体が1つ列区切りと見なされる。その結果、半角スペースが列の値に含まれることがなくなるので、望みどおりのソートが行われる。

       

    • 全角スペース区切り

    • 列区切り文字扱いされてしまう

       

      正しくやるには、環境変数を無効にする、もしくは-tオプションで区切り文字は半角スペースだと設定しなければならない。

      具体的には、sortコマンド引数に-t ' 'と追記してやればよい。

       

       

  • ifconfig
  • ping
    • ネットワークの導通を確認

  • HTTPステータスコード
    • これを意識した設計を行うことでサーバとクライアント間の開発がスムーズに進む

    • 不適切なステータスコードを割り当ててしまうとクライアントが混乱し、システム全体の挙動に支障をきたすことも...

    • 理解することで、問題の切り分けや判断がしやすくなる

 

  • AWSが生まれたのは、Amazonが経費削減の為にSunのサーバからHP/Linuxへ切り替えた事がきっかけ

 

 

サイトにアクセス出来ないときは、パブリックDNS8.8.8.8に設定してみよう
これは、Googleが運営するパブリックDNSサービス(Google Public DNS)です。このDNSサーバーのアドレスを自分のPCに設定す ると、ブラウジングの速度が向上、セキュリティもアップするとしています。登場したのは2009年のことでした。Google Public DNSの優先DNSサーバのアドレスは、先ほどから登場している「8.8.8.8」、代替DNSサーバのアドレスは「8.8.4.4」です。

 

CPUとGPU
  •  CPU
    • Central Processing Unit
    • コンピュータ全体の計算処理
    • 連続的な計算処理
    • コア: 数個
  • GPU
    • Graphics Processing Unit
    • 3Dグラフィックスなどの画像描写に必要な計算処理
    • 並列的な計算処理
    • コア: 数千個

 

  • ポートフォワーディング
    • インターネットから特定のポート番号宛にパケットが届いたときに、あらかじめ設定しておいたLAN側の機器にパケットを転送する機能

    • 自宅に公開用のWebサーバなどを設置する場合に使用される機能

 

  • ポート番号「0」
    • 現在は使われておらず、将来何らかの新たなシステムで使うことになるかもしれないので「予約」されている状態