学習忘備録

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

技術記事ノック #84~#100

TCP/IP

TCPの特徴
  • コネクション型
    • TCPは伝送を制御するプロトコル
    • 伝送 = コネクション
    • 通信する相手との仮想の通信経路を確立させるもののこと
  • 信頼性がある
  • 全二重通信が可能
    • 全二重
      • 電話のような感じ
    • 反対の意味合いとしては半二重通信
      • トランシーバのような感じ
        • 片方ずつしか話せない
    • 全二重の利点
      • 2組の通信路が独立しているので、AからBへ送信中であってもBからAに送信することが出来る点
    • 3ウェイハンドシェイク
  • シーケンス番号の役割
    • データを分割してデータを伝送する場合、パケットしてそれぞれを独立させて送られる
    • シーケンス番号はそのパケットに付与する通し番号
    • 受信側でシーケンス番号を確認する事で不測事態に対応出来る
    • パケットに付ける番号をシーケンス番号という
    • 受信側が対応するための番号
  • 確認応答番号の役割
    • 確認応答番号は、送信時に「シーケンス番号+1」となっていた番号が相手側へ受信した場合、「シーケンス番号+受信データバイト数」として応答するため、送信元が正しく相手側が受信したかを確認する事が出来る。
    • 送信側が対応するための番号
  • 制御機能がある
    • フロー制御
      • 送信側のパケット量を調整する
    • 誤り制御
      • パケットの順番が間違ってたり、途中で故障したりしたものを検出する
    • ふくそう制御
      • ネットワークの混雑状態を見て、パケットの量調整する
  • ハーフクローズ
    • TCPのは片方だけが終了しても、もう片方の転送が継続され続けている可能性があるため、片方ずつ終了させる必要がある。
      • 切断時にはやり取りが4回

 

Webアプリケーション

Webアプリケーションとネイティブアプリの比較

  • Webアプリケーション
    • 利用の際にはネット環境が必要
    • 画面表示を担うのは、Webブラウザ
  • ネイティブアプリ
    • 使用にはインストールが必要
    • インストールしてしまえば、いつでもOS上で起動出来る

 

Webサーバ

  • Nginx

高速
大量処理が得意
Webサイト利用を向上させる機能が豊富(のちほど解説)
設定は意外に容易(設定箇所は比較的少ない)

  • ApacheとNginx (※以下AとNと呼称する)
  • 複数のアクセスに対して
    • A < N
  • 機能面
    • A = N (動作方法のち外によりNginxの方が適しているとも考えられる)
  • 大量の動的コンテンツの処理
    • A > N
  • 機能の追加のしやすさ
    • A ≧ N
  • 初心者向けの設定情報
    • A > N

 

API

APIとはソフトウェアやアプリケーションなどの一部を外部に向けて公開することにより、第三者が開発したソフトウェアと機能を共有できるようにしてくれるものです。

USBは外部デバイスとパソコンを繋ぐインターフェースですが、APIはソフトウェア同士を繋げます。つまり、異なるソフトウェアやサービス間で認証機能を共有したり、チャット機能を共有したり、片方から数値データを取り込み、別のプログラムでそのデータを解析したりできるようになります。

 

Memo

  • 動的ページ
    • 基礎となる部分はPHPファイルで作成し、可変的な部分はデータベースに格納する

    • ユーザがサイトにアクセスした時の動きに合わせてデータベースから該当する内容を引き出して表示することで、最新の情報を表示できる

 

日本語で「拠点」の「集まり」

Gitはバージョン管理ツール

GitHub上で、エンジニア各々が公開用のプログラムをアップして自分以外のエンジニアに共有。その後、履歴を残しながら更新したり、自分以外のエンジニアも修正を加えることが可能

 

  • X-Tech

X-Tech(クロステック)とは、既存の業界のビジネスとAIやビッグデータ、IoTなどといった先進的なテクノロジーを結びつけて生まれた新たな製品やサービス、あるいはその取り組みを指します。

 

  • lsof コマンド
    • プロセスが利用しているポートが確認出来る