sandboxゲーム開発、Web開発、音楽制作その他諸々。参考書籍はじめにエンジニアとして仕事をしていますが、ネットワークについてはきちんと理解できていないと思い、ネットワークを基本から勉強し直しています。学んだことをまとめていきます。ネットワークとは?ネットワークとは、コンピュータ同士のつながりのこと。つながったコンピュータはお互いにデータを送受信できます。社内ネットワークなど閉じた範囲内でのネットワークをプライベートネットワーク、公開されていて誰でもアクセスできるネットワークをインターネットと言います。あるネットワークが、別のネットワークとつながり、「ネットワークのネットワーク」を形成しているのがインターネットです。「インターネットで世界中とつながる」という言葉はよく聞きますが、比喩ではなく本当につながっています。ネットワークを実現する技術インターネットでしていることを極めて簡単に説明すると、「コンピュータ同士のデータのやり取り」です。ブラウザでWebサイトを見ることができるのも、自分のコンピュータがインターネットを通じ、Webサイトが構築されたコンピュータにデータを要求し、返ってきた結果をブラウザが表示しているだけです。イメージとしては、目的地のコンピュータの情報(住所)と、届ける内容を含んだデータが、自分のコンピュータから発信され、ネットワーク間・コンピュータ間でバケツリレーが行われるかのごとく運ばれていく感じです。必要なのは、「目的のコンピュータにデータを届けること」。その実現に様々な技術が使われています。階層とプロトコルデータはコンピュータからコンピュータへ、回線や電波を通って運ばれます。バケツリレーのようにデータを運んで行きますが、ある処理では特定の形式のデータがないと処理することができません。この決まった形式のことを「プロトコル」といいます。プロトコルが違うと、そのデータは処理されず、そこで消えてしまいます。それでは困るので、データは運ばれる過程でデータにはプロトコルを合わせる情報・「ヘッダ」が付加されていきます。(カプセル化)ヘッダによってプロトコルが合い、データは適切に処理・転送されていきます。運ばれる先で、取り付けられたヘッダが一つ一つ剥がされ(非カプセル化)、最終的に中のデータが相手に届きます。階層ごとに大まかな役割分担が決まっており、各階層に属する様々なプロトコルを利用しながらデータを届けていきます。TCP/IP様々なプロトコルがありますが、その役割によってTCP/IPモデルのいずれかに属します。イーサネット、Wi-Fiデータ転送がどのような流れで行われているか見てみます。アプリケーション層からデータを送信します。アプリケーション層のデータは、次のトランスポート層で処理されます。データ送信に失敗した場合に再送する機能やデータサイズを分割し、正しい順序で送る機能などがあります。続いてインターネット層で、インターネット上のどこの誰宛のデータなのか確認し、届けます。最後にネットワークインターフェイス層。インターネット層で届け先がわかったら、電気信号や電波などに変換にして、物理的にデータを運んでいきます。※この階層では、通信相手のプロトコルを問わず、データを届けることができます。規格が異なる有線LANと無線LANで問題なく通信できるのはこのためです。ネットワークインターフェイス層とインターネット層のおかげで、あるネットワークから別のネットワーク、そのまた別のネットワークにデータが渡され、宛先となるネットワークの、固有のコンピュータにデータが届けられます。OSI参照モデル現在ネットワークの規格はTCP/IPがほぼ全てです。似たようなキーワードでOSI参照モデルがありますが、これは実装されているものでもないため、TCP/IPをまずは押さえておきます。物理層まとめこのように、ちょくちょく、コード系以外のことも備忘録がてら書いていきます。誤解や知識不足があればぜひご指摘いただけると幸いです。HTTPSをSSHに切り替えようと思い立つ。...【C#】リストからランダムに複数の要素を重複しないように取得するリストから、ランダムに複数の要素を重複しないように選び出す処理を書く。...Unityでテストコードを書き始める【近況】ちまちまと、新規ゲームアプリを開発中。....bash_profileに書いた環境変数が反映されないと思ったらbashではなくzshを使っていた件タイトルが全てです。超初歩的なミスでした。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。