ラベル 通信 の投稿を表示しています。 すべての投稿を表示
ラベル 通信 の投稿を表示しています。 すべての投稿を表示

HTTPSとは(調査偏)

HTTPSって漠然と使用しているけど、具体的に何なんだろう?ってことで調査してみる。

HTTP通信が平文メッセージを通信するのに対して、HTTPS通信では暗号化したメッセージを通信する。暗号化するには、サーバー証明書とクライアント証明書が必要。

HTTP通信と比較して通信をよりセキュアに、ブラウザ表示がより高速になる。
証明書を使用して通信内容を暗号化することでセキュアな通信に出来ることは分かった。しかし、なんで高速になるのだろうか。ここは追加で調査が必要だ。

2016年~2017年にかけて、HTTPSのシェアが過半数を超えた。
2019年ではどのくらいのシェアなんだろうか。ここも追加で調査が必要だ。

AWS学習 VPCピアリングとは何なのか調べてみた

AWSの学習をしていて、VPCピアリングという言葉がわからなかったので調べてみました。現状の理解をまとめてみます。

そもそもVPCとは

まずVPCはVirtual Private Cloudのことです。要は、Amazon EC2のネットワーキングレイヤーです。VPCは他の仮想ネットワークから切り離されます。

VPCを使用すると、仮想ネットワーク内にAWSのサービスを起動することができます。この仮想ネットワークはアマゾンが準備しているネットワーク / サーバ群でユーザーはお金を払えば自由にスケールアップさせることが出来ます。

VPCピアリングとは

さて、本題のVPCピアリングについてです。VPCピアリングというのは、上記で説明したVPC同士をつなぐことです。この接続時にはプライベート IPv4 アドレスまたは IPv6 アドレスを使用します。

VPCピアリングによってVPC同士が接続されると、どちらのVPCインスタンスも同じネットワーク内に存在しているかのように扱うことが出来ます。

VPC は複数の異なるリージョンに存在できるので、VPCピアリングを使えば複数の異なるリージョン間でもプライベート IPv4 アドレスまたは IPv6 アドレスで接続することが出来るということです。

まとめ

少し勉強してみた感想ですが、AWSの勉強はAWS固有の知識以外にも色々と勉強になってすごく良いです。まず英語と日本語の説明があるので、両方読むことで英語の勉強にもなます。しかも説明がわかりやすいです。そして、専門用語も所々にあるので、インフラ構築する上で抜けている知識も補うことができる。

今回の記事ではVPCピアリングのみのまとめでしたが、他にも調べてまとめたいことはたくさんありました。リストアップしますとこのような感じです。
・サブネット
・ゲートウェイ
・インターネット VPN
・ルーター
・ソフトウェアルーター
・ルーティング
・NAT / NAPT
・レイヤ3
 ・AWS CLI

こうしてみると基本的なことも含まれていて、勉強不足感が否めませんが私は前職ではアプリ作成の担当だったのでインフラはあまり詳しくないことを言い訳として主張したいところですね。(←誰に)

以上、「AWS学習 VPCピアリングとは何なのか調べてみた」でした。

JSONの構造(オブジェクト・配列)と使い方(Java)

JSONの構造(オブジェクト・配列)と、その使い方(Java)についてご紹介します。

JSONとは

JSONとは、データ交換フォーマットです。特徴としては、人間にとって理解しやすいフォーマット。さらに、軽量かつソースコード上でも扱いやすいといったことがあげられます。また、データ交換フォーマットなので、プログラミング言語の種類によらず使用することが出来ます。

JSONの構造

JSONの構造はオブジェクトと配列に大別されます。それぞれの基本構造はこのようになっています。

オブジェクト

{"name":somegoro, "age":"25"}

配列

["somegoro", "25", "man"]

また、これらを組み合わせることも可能です。

オブジェクトの中にオブジェクト

{"user01":{"name":somegoro, "age":"25"}, "user02":{"name":daigorou, "age":"28"}}

オブジェクトの中に配列

{"user01":["somegoro", "25", "man"], "user02":["somegoro", "25", "man"]}

配列の中にオブジェクト

[{"name":somegoro, "age":"25"}, {"name":daigorou, "age":"28"}, {"name":someko, "age":"18"}]

配列の中に配列

[["somegoro", "25", "man"], ["daigorou", "28", "man"], ["someko", "18", "woman"]]

こうして自由に組み合わせることが可能です。今は配列数やオブジェクト数を絞っていますが、これが膨大な数になり組み合わせも複雑化すると人間が見れたものではないですね。こういうときこそプログラムで人間の見やすい形式に変換しましょう。

変換について

JavaScriptでも自由に変換することが出来ますが、Javaを使える環境ならばJava側で変換した方がシステムとして高速かつ安定したものになります。Java側で処理する際にはライブラリを使用して処理するのが便利です。


JSONC

JavaでオブジェクトとJSONを相互変換するためのオープンソースのライブラリです。JSONIC公式サイト(http://jsonic.osdn.jp/)に使用方法とダウンロードリンクがあります。ここからダウンロードして「Javaのビルド・パス」の「ライブラリ」に追加してください。プログラム上で import すると上記で追加したライブラリが使用できます。

実際に使用しているこのお方の記事がわかりやすいです。
http://blog.codebook-10000.com/entry/20130930/1380507089



以上、「JSONの構造(オブジェクト・配列)と使い方(Java)」でした。

java(サーバーサイド処理) → HTML(画面側処理) のデータ渡し

java(サーバーサイド処理) → HTML(画面側処理) のデータ渡しについて、


結構前から調べてたのですが、やっと検討が付きました。というか思い出しました。
サーバー側で取得したり加工した「データ」を、どうやって画面側の処理に渡すのだろうかと考えていたのです。


javaの本では大体printでHTMLを出力しているようでしたが、実務を考えるとどうも現実的でないと思っていました。かと言って本には他の方法は見当たらない。


HTMLの本では form でjava側にデータを送ることについてはよく書いてあるのですが、逆方向の java → HTML へのデータ渡しについて書いてある書籍は見つかりませんでした。


javascriptも上記の二つ同様にサーバーサイド処理 → 画面側処理にデータを受け渡す方法は見つかりませんでした。


そこで、WireSharkなどでHTMLとjavaでどのようなデータを処理しているのかを見たり、HttpRequestやHttpResponseなどの仕様を調べてみました。そして辿りついたのが次の方法です。


次の情報を見ていくと詳細がわかります。
jsonデータを受け渡しに使うのですね、他の方法もあるのでしょうが、一つでもわかれば大分道が開けますね。


jQueryからサーブレットを呼び出してデータ取得、、、パラメータも渡してみたんだが。
http://ojorojoro.hateblo.jp/entry/2014/07/03/200931

JSON形式のWeb APIにアクセスするには?
http://www.buildinsider.net/web/jqueryref/034

ajaxでjavascriptとjavaの連携をする
http://pgori.hateblo.jp/entry/2013/05/24/111855

http://pussade8.hatenablog.jp/entry/2015/07/05/220612
(javascript)jQueryのajaxを利用してサーブレットからJSONを受け取る


これらはGoogle検索で「jquery java」とキーワード指定して検索すると出てきます。他にもたくさんのわかりやすい情報があるかと思いますので、気になる方は検索してみると良いかと思います。



HTML formで受けたデータはどのように処理すればいいのか

HTML formで受けたデータはどのように処理すればいいのか


■Getの場合はこうしてしまおう。

・javascriptでクエリ文字列を取得する
http://qiita.com/ma_me/items/03aaebb5dc440b380244

・[JavaScript] JavaScriptでURLのパラメーターを取得する
https://www.ipentec.com/document/document.aspx?page=javascript-get-parameter


■Postの場合はどうしたらいいのだろうか。
HTMLで受け付ける方法を記載してあるものが見つからない。そもそもServer側プログラムに渡すのがセオリーですものね。

PHPだとこんな風にしてデータ取得するようです。

・データの取得
http://akita-nct.jp/~yamamoto/comp/WEB/get_data/index.php

・GETで送られたデータ処理
http://www.phpbook.jp/appli/form/index2.html



ふーむ、やはりjavascriptではPostデータは取得できないようですね。HTMLにPHPを埋め込むしかないようです。

・Javascriptメモ:POSTデータの受信
http://qiita.com/juniskw/items/fb2b2bd6a7a003e5cb26

・フォームからのデータを受け取る方法
http://manabukun.net/kyouzai/php/php11.htm



■詳しい情報
HTTPまわりの情報だとかを詳しく書いてあるサイトを見つけました。ポップなデザインのブログですが今まで見たどのブログよりも詳細に情報が載っています。わからないこともあるのでググって理解します。

・入力された値を送信→受信
http://web-design-felica.hatenablog.com/entry/20150115/p1


・フォームデータを送信する
https://developer.mozilla.org/ja/docs/Web/Guide/HTML/Forms/Sending_and_retrieving_form_data

こちらはMOZILLAのサイトです。さすがに詳しいです。しかし、やはりHTMLでの取得方法は記載していません。


開発現場では軽視されがちな気がするけど、意外と奥が深い フロントエンドの世界。

※追記
iframeにformデータを送ると受け取ってくれるらしい情報を入手しました。明日職場で試してみようかと思います。postもgetも大丈夫なんだとか聞きました。


面白そうなことしている企業を見つけた。 NICT 宇宙天気予報



おもしろそうな企業を見つけました。この企業では、宇宙天気予報などを行っているようです。

NICT (https://www.nict.go.jp/)

正式名称は「国立研究開発法人情報通信研究機構」と言うそうです。様々な研究や業務を行っているようですが、私の興味のあるのは次の分野です。

宇宙天気予報磁気嵐による被害の予防を目的として、磁気圏の状態を観測・予報する宇宙天気予報を行っている。また、電離圏世界資料センターとして、世界各地で行われている電離層観測や太陽活動観測などで得られたデータを収集し公開している。wikipediaより(https://ja.wikipedia.org/wiki/%E6%83%85%E5%A0%B1%E9%80%9A%E4%BF%A1%E7%A0%94%E7%A9%B6%E6%A9%9F%E6%A7%8B)

実はこの企業は大学のころに少しだけお世話になっているのです。当時の私は何もわかっていなかったので気にも留めていませんでした。社会に出て色々な仕事を目にするようになって、自分の勉強してきたことは少々特殊で、その特殊な分野に興味があることを気づきました。

その興味のある分野と、この企業の方向性は非常にマッチしている数少ない企業といえるでしょう。ここで私は宇宙天気予報をしたいです。(こちら現在の宇宙天気だそうです⇒http://swc.nict.go.jp/contents/index.php) そして、その宇宙天気予報がみんなの生活をより豊かで安全なものに出来たら幸せだと思います。研究利用で現在活用しているのは、ゲリラ豪雨の予測を行っているようです(https://www.nict.go.jp/press/2016/08/09-1.html) 気象関係に何かしらの携わりを持っている方ならよくご存じかと思いますが、ゲリラ豪雨は意外にもまだ予測できていないのです。

この転職活動にあたって懸念事項はいくつもあります。まずは大学院を出ていないと研究的側面の強い会社には入が難しいのではないか。官の企業ならなおのこと。あとは論文を書いたことがないのも少々気になります。

まずは、この分野で論文を記載してみることにしましょう。大学院については入らなければならないかも調べておく必要がありますが、今から入るのは骨が折れるしお金を稼げないので厳しい。学校に入り直すくらいなら医学部に行きたいという思いもあります。もし仮に大学院に入る必要があるなら、この企業への入社ではなく関連企業に入社ということでもいいかもしれません。民間企業ならば大学院卒業縛りは無いでしょう。

さて、論文を書くにあたって、知識がなければなりません。大学時代に勉強したことを遡りながら、今の状況を把握していく必要があります。ちょうど気象予報士の資格も取得しようとしていたのでちょうど良いでしょう。

大学時代の勉強は当時よく読んでいた本を再購入して読んでみることにします。絶版になってないと良いですが。業界の今の状況については、ニュートンでも読んで徐々に把握していきます。取り急ぎは、基礎知識として気象予報士の試験勉強をしていきます。1月に試験なのであと半年ですね、計画は情報処理などの他の試験と折り合いを見て計画を立てていこうかと思っています。

それでは。

コンテンツアドバイザーでWebフィルタリングをする方法

今回はWebフィルタリングについての話題です。

社内SEの業務の範疇になるかと思いますが、社内SEのみなさんはWeb上でフィルターをどのようにかけていますでしょうか。

IE限定ですが、閲覧出来るサイトを管理者が簡単にコントロールすることが出来ます。その設定方法をご紹介したいと思います。

会社ではOSをWindows。ブラウザをIE(インターネットエクスプローラ)。という環境で使用している方々が多いので、多くの方が使える情報かと思います。

閲覧可能サイトを制限しないと、次のような危険が考えられます。
・エロサイト見てウィルス感染
・2ch見てウィルス感染
・何かと趣味のページ見て時間浪費

このような自制を効かすのが難しい社員を社内SEは守らなければなりません。それが仕事の一つと言えるでしょう。さらに、このような行為に通信回線を圧迫されないようにしたい。そのために、この機能は簡単で便利に使えます。

その名も、コンテンツアドバイザーといいます。

設定方法の詳細はネット中にあります。ですので、ざっくりと説明するにとどめます。

1.「ツール」→「インターネットオプション」→「コンテンツ」タブを押下する。

2.「コンテンツアドバイザー」欄の「有効にする」ボタンを押下する。

3.「ユーザーアカウント制御」→「はい」を押下する。

4.「コンテンツアドバイザー」→「全般」タブを押下する。

5.「ユーザーオプション」欄の「規制されていないWebサイトを表示する」にチェックを付ける。

6.「OK」→「コンテンツアドバイザー」を閉じる。

7.「コンテンツアドバイザーが、有効になりました。」と表示される。

これでコンテンツアドバイザーが有効になった。

※規制されたWebページを閲覧しようとすると「コンテンツアドバイザーの設定により、このWebサイトを表示できません。」と表示される。



このコンテンツアドバイザーをAD(アクティブディレクトリ)なりでコントロールする。そうすることで会社内やシステム内でWebフィルタリングが出来るというわけです。

ちなみに、一般ユーザーでもADでコンテンツアドバイザーを設定することが出来ます。一般ユーザーに設定を変えられてしまっては管理者が大変ですね。

ですので、管理者しか設定できないように変更しておきましょう。ADでコンテンツアドバイザーを設定するには、インターネットオプションのコンテンツタブを使用します。ですので、そのコンテンツタブを表示してないようにしてしまえば良いのです。


以上。コンテンツアドバイザーでWebフィルタリングする方法についてでした。
いかがでしたでしょうか。これでいくらかのトラブルの種をなくすことが出来るかと思います。




「HTMLヘッダ」や「web.xmlのタグ」の解説。オマジナイのようだけどそれだけではありません。

今回の記事では「HTMLヘッダ」「web.xmlのタグ」の解説をします。それらは、オマジナイのように受け継がれているもの。しかし、それだけのものではありません。

きちんとした理由があれば開発も楽しくなることでしょう。それではさっそく始めます。

HTMLヘッダ

HTMLのヘッダというかスキーマというのか、一番最初に書く文ありますね。
それについて厳密に何なのか知らずに書いていたのです。まるでオマジナイのように。
ずっと気にはなっていたのですが中々きちんとした情報を得る機会がなくて。

今回、それ調査しました。それをかみ砕いてご紹介いたします。
これがわかればHTTP通信の基本的なことは理解できるのではないでしょうか。

みなさんHTML書くときの型として、こんな感じのものを書きますよね。

<!DOCTYPE html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja" dir="ltr">
<head>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<link href="./style.css" rel="stylesheet" type="text/css">
<link rel="index" href="./index.html">
<title lang="ja">タイトル</title>
</head>
<body>
本文
</body>
</html>


これらは一体何なのか。それぞれについて解説していきます。最初に必須か任意かを書いておきます。

<!DOCTYPE html public "-//W3C//DTD HTML 4.01 Transitional//EN">
必須。文書の型を宣言している。

<html lang="ja" dir="ltr"></html>
任意。「国」と「左から右」に読むことを設定している。(left to rightですね)

<head></head>
任意。この中に色々と要素を詰めますよね。

<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
必須。文字コードを記載する。

<link href="./style.css" rel="stylesheet" type="text/css">
<link rel="index" href="./index.html">
必須。文書間の関係を明示する。

<title lang="ja">フォーマット</title>
必須。タイトルを記載する。言語の登録があればなお良し。

<body></body>
任意。本文や表示したい画像などを記載する。


ということでタグの解説完了です。タグの意味がだいぶ見えてきたのではないでしょうか。


web.xmlについて

Apache TomcatでWebページ作るときにweb.xmlというファイルを作りますね。
これは厳密には何なのか知らない方も多いのではないでしょうか。その意味と使い方を知ることで便利な機能を使えるようになることでしょう。

web.xmlはざっくり言うと「Webアプリケーションの動作を定義する」ファイルです。
どんな動作かというと次のとおりです。
・サーブレット定義
・セッション定義
・認証設定
・ウェルカム・エラーページ設定
・などなど

では実際のファイルに記載されているタグを解説していきましょう。

<?xml><!DOCTYPE>
最初に記載されているの上記2つのタグではDTD宣言の設定しています。

<servlet>
servletタグでは、サーブレットクラスの名称を定義しています。使用するJavaクラスの名称に名前つけてるということですね。

<servlet-mapping>
先ほど名付けたサーブレットクラスの名称とURLをマッピングしています。

<security-constraint>
ここでは認証の設定をしています。

<login-config>
ここでは認証方式を設定しています。基本認証、ダイジェスト認証、など色々ありますね。

以上で基本的なweb.xmlのタグについての解説は完了です。いかがでしたでしょうか。web.xmlのタグはわりとたくさんあるので、随時追加していきたいと思います。そのときにはここにリンクをはりますので是非覗いていってください。


そういえば昔、サラリーマンやってたころにプロジェクト内でログイン画面が必要になったことがあったのです。で、リーダー的な活動をしていた人が「私が作る」とか言ってたのです。

私は協力したほうが良いのかなと思いつつも放っておきました。以前、その人に協力したら邪魔者扱いされたことがあったし物言いがキツイからです。

しかし、その後一向に連絡がなく1ヵ月は過ぎていたころにギブアップ連絡が第三者から入りました。結局納期に間に合わないのと仕様に明記されていないとの理由から、ログイン機能なしの方向になりました。しかし上記機能使えば簡単に出来そうですね。


SQL文の高速化

ハイバーネイトのようにツールを使用すると、比較的楽にDBアクセスの処理が書けるかと思います。

しかし、ツールの安全性や保守性を考えると導入できないシステムは多いかと思います。
安全性第一の大規模システムなどは、その典型的な例と言えるでしょう。

膨大な処理を書かなければならず、大変ですよね。
私も以前このようなシステム開発にかかわったことがあります。


そのシステムは24時間運用でしかもデータ量がかなり多く、レスポンスが遅くてズルズルと処理が遅れていくっていうパターンに陥りがちでした。運用時には手動でデータを処理することで対処していました。

そのときにゴリゴリSQL文書いていて、困ったことがあったので書いておきます。



そのときにボトルネックになっていたのが、DBアクセス時の処理なんですね。
この処理が遅くデータ更新や作成などが出来ていなかったりしたのです。

その解決に向けて今回は次の方法で実装してみようと思います。
さて、どのくらい早くなるでしょう。

・indexをつけること
・「SELECT」や「FROM」は大文字小文字混同しないこと。



ちなみに、以前システムバージョンアップの仕事に関わったときには、PCのスペック的にダメだったのか知りませんけど検索だけ作られていて、更新/削除/作成処理がダミーなんですよね。全部alert文で失敗しましたって出るだけでした、社会には色々なシステムがあるものですね。


それでは今回はこの辺で。






「JDBCとは」どういう意味?解説します。

JDBCとは、読み方はジェーディービーシーと読み、略称ではありません。

さてこのJDBCですが次のような種類があり、これらをまとめてJDBCと呼んでいます。
・JDBC API
・JDBCドライバ・マネージャ
・JDBCドライバ


ではこれらの「JDBC」を使うとどのようなことが出来るかというと「Javaアプリケーション」が「データベース」に接続出来てさらに操作も出来るようになります。

こんな感じ:
Javaアプリケーション(JDBC API)→ JDBCドライバ・マネージャ→ JDBCドライバ → データベース


この「接続」と「操作」をするには、どのようにしたら良いでしょうか。

まずインストール、そして実行ですね。

ではインストールする方法を示します。

・JDBC API 、JDBCドライバ・マネージャ
これらは、Java SEに含まれており、Javaの基本SDKに同梱されています。
要は、意識していなくてもJavaをインストールしたらこれらもインストールされているってことですね。

・JDBCドライバ
これは各DBMS(以下、データベース)によってJDBCドライバが違います。現在開発が行われているほとんどのデータベースでは、それぞれの「JDBCドライバ」が提供されているので、それをインストールしましょう。


実行
Javaアプリケーション側に「SQL」を記述することでJDBC APIを呼び出して実行します。実行されたJDBC APIに従い、JDBCドライバ・マネージャは適切なJDBCドライバを選択し、JDBCドライバを経由してデータベースに処理を渡してくれます。

要は、開発者は種類の異なるデータベースでも、同じ「SQL」を記述するだけで良いってことですね。データベースの差異分はJDBCドライバが吸収してくれるということです。



それぞれのJDBCの意味

・JDBCドライバ
JDBCドライバはデータベース間の差異を吸収します。


・JDBC ドライバ・マネージャー
複数のデータベースに接続するためには、複数のJDBCドライバが必要になってきます。いちいち切り替えをするのが大変ですね。そこで、 JDBC ドライバ・マネージャーの登場です。

JDBC ドライバ・マネージャーは、複数のJDBCドライバを管理します。複数のデータベースに対して適切なドライバを選択してくれるのです。これによりJavaアプリケーション側では、データベースの種類を気にせずにデータベースに接続・操作することができるのですね。


それでは今回はこの辺で。




通信方式について「半二重方式」と「全二重方式」はどう違うか

今回の記事では通信方式について説明していきます。

現在、通信方式は3つあります。
・単方向通信
・半二重方式
・全二重方式

それでは細かく見ていきましょう。

・単方向通信

これは、テレビ放送(地上デジタルは違う)などに使われています。
送りっぱなしっていう通信方式です。



・半二重通信

続きまして半二重方式。こちらはトランシーバーなどに使われています。
この「半二重通信」と「全二重通信」の違いについては、よく糸電話と電話にたとえて説明されます。
「半二重通信」は糸電話のように自分が話している間は聞けません、聞いている間は話せません。

利点としては、一つの周波数帯で通信が行うことが出来ます。
欠点としては通信方向が1方向に限定されます。

データ通信は一つの周波数帯で1つの通信しか行えないために
周波数帯を一つしか持っていない通信回線においては必然的に半二重通信方式にならざるおえません。


同軸ケーブルでは、データを流す回路はひとつしかありません。そのため、送信と受信は順番にしか行うことが出来ません。
もし同時に送信と受信を行ってしまうようなことがあると、回路上でデータが衝突してしまい正しくデータを送受信することが出来ません。糸電話でも両方話してしまったり、両方聞いてしまったら通じないですもんね、それと同じです。


・全二重通信

最後に全二重通信。こちらは上述で電話として例であげたとおり、実際に電話に使用されています。

電話では、通話者は互いに同時にしゃべったり、聞いたりすることができます。
このように両者が同時にしゃべったり聞いたりできる通信方式を、全二重(FULL DUPLEX)通信方式と言います。

メリットとしては早く大量のデータを送受信できることでしょう。
デメリットとしては使用可能な環境を整えるのが少々大変です。設備が必要になってきます。

それではその設備について、全二重通信の方式で通信するには、

・同軸ケーブルを2本分用意する。
・あるいはUTPケーブルを用意する。1本でデータの送受信ができちゃいます。
・さらに、マイクロセグメンテーションを行っていることです。

マイクロセグメンテーションとは、以下の図のようにスイッチのひとつのポートに1台のコンピュータを接続する接続方式です。
こうすると、ひとつのコリジョンドメインの中にコンピュータが1台しかいないので、衝突が発生しないことが保証されます。衝突が発生しない環境においてのみ、全2重通信が可能です。



それでは今日はこの辺で。

「PPPとは」 意味や使い方を解説

先日の記事で、通信プロトコルの種類に「PPP」と記載しました。今回はその「PPP」について解説します。

「PPP」とは、略称で正式な名称を「Point-to-Point Protocol」と言います。正式名称は長いので大体みんな略称の「PPP」と呼びます。

この「PPP」のすごいところは、色々な通信プロトコルと接続できるところです。

要は、人間でいうところのバイリンガルですね。東北弁も関西弁もいけちゃうよと。
接続可能な通信プロトコルとしては、「NetBEUI」「AppleTalk」などが上げられます。

さてそれでは「PPP」の機能について話していきましょう。
PPPの通信は、2つの通信プロトコルを使用しています。前回もこんな感じのこといいましたがこんなこと出来るんですね。その2つの通信プロトコルは次のとおりです。

・リンク制御プロトコル(LCPとか言われてます)
これがユーザ認証機能を持っています。

・ネットワーク制御プロトコル(NCPとか言われます)
これが接続を確立する機能を持っています。

すなわちPPPは、「ユーザ認証機能」と、「接続を確立する機能」を持っているということですね。

この機能を使用して、「ユーザーのコンピュータ」と「プロバイダのコンピュータ」を接続および通信を行っています。図として表してみましょう。




わかりやすいですね。続きまして応用編です。

みなさん「PPPoE」という言葉はよく見かけることでしょう。もしかしたら「PPP」単体よりも見かける機会は多いかもしてません。

PPPoEは略称で正式な名称は「Point-to-point protocol over Ethernet」と言います。こちらも長いので大抵はPPPoEと呼ばれます。

PPPoEというのは通信プロトコルのことなのですが、俗称とでも言いましょうか「方法」としても認知されています。

・方法としての意味
イーサネット上でPPPによるセッションを確立する方法

・通信プロトコルとしての意味
イーサネットフレーム上にPPPをカプセル化した通信プロトコル


この「PPPoE」は、インターネット接続サービスでのブリッジ接続に利用されています。イーサネットではPPPoEを使わなくても接続および通信することができるのですが、「ユーザ認証」「接続の確立」といった機能を使用するために「PPPoE」を使用しています。


それでは今日はこの辺で。

通信プロトコル

今回は通信プロトコルについての説明をします。

インターネットの中って、どうなってるの?そんな疑問を解消する第一歩が通信プロトコルの理解です。それではいきましょう。

通信プロトコルとは
ネットワーク上でパソコンが通信する際に、通信に関する規約を定めたものです。

私たち日本人も規約を定めてコミュニケーションをとっていますね、そう日本語です。日本人にとって日本語にあたるものが、パソコンにとっての通信プロトコルです。

厳密にはパソコンというよりもデバイスですね、最初はパソコンと覚えておけばいいでしょう。


図として表すとこんな感じです。







日本語にも色々な種類がありますよね、東北弁やら九州弁などの。これらの方言が違うとコミュニケーションが取れないです。これは通信プロトコルにも言えることで、通信プロトコルにも種類があります。

通信プロトコルの種類 : HTTP DHCP SMTP SNMP IP イーサネット PPP


まだまだたくさんあります。これらを合わせておかないと通信はできないということですね。
それでは具体的にどのような場面で、どのような通信プロトコルを使用しているのか見ていきましょう。


今回は私たちがよく使用するインターネットについての例をあげます。

インターネットでWebページを見るときには、Webブラウザは「HTTP」という通信プロトコルを利用して通信を行います。HTTPは、TCPと、IPという2種類の通信プロトコルを使用しています、こんなことも出来るんですね。

よろしいでしょうか、要は「パソコン(Webブラウザ)」と「Webサーバー」はHTTPという通信プロトコルを用いてコミュニケーションをとっているということです。このコミュニケーションいわゆる情報伝達によって、私たちはインターネットの閲覧ができるわけですね。

それでは図にして表してみましょう。





図にするとよくわかりますね、逆に図にしないと他の「情報まとめサイト」を見たほうがよくまとまってますからね、これからも図に書き起こしていきます。

通信プロトコルについて、ざっくりとした理解は得られたでしょうか。

それでは今回の記事はこの辺で。






上司がクソ野郎になってきた

上司がクソだ。 全然勉強していなくて話が通じなくてクソ REST知らないってどういうことなんだろう。弊社標準になってから久しいJavaをまともに組めないってのはどういうことなんだろう。 計画上では詳細設計フェーズが半分を過ぎようというときに要件定義できていないってのはどう...