Submit Search
Upload
第三回IoT関連技術勉強会 データ通信編
•
0 likes
•
1,740 views
T
tzm_freedom
Follow
社内勉強会の資料。 主にMQTTとSORACOMの話。
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 21
Download now
Download to read offline
Recommended
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
Yahoo!デベロッパーネットワーク
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた
Akihiro Kuwano
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
NTT DATA Technology & Innovation
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
DeNA
Recommended
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
Yahoo!デベロッパーネットワーク
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた
Akihiro Kuwano
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
NTT DATA Technology & Innovation
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
DeNA
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
takezoe
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
Yahoo!デベロッパーネットワーク
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
Spanner移行について本気出して考えてみた
Spanner移行について本気出して考えてみた
techgamecollege
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
AWSで作る分析基盤
AWSで作る分析基盤
Yu Otsubo
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
こわくない Git
こわくない Git
Kota Saito
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
Masahiro NAKAYAMA
設計書自動生成への取り組み~手書き設計書から脱却するには?~
設計書自動生成への取り組み~手書き設計書から脱却するには?~
SystemIntegrator2
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
Mori Ken
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
Yuta Shimada
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
Heroku
Heroku
Ayumu Aizawa
Heroku Changelog in 2013
Heroku Changelog in 2013
Ayumu Aizawa
More Related Content
What's hot
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
takezoe
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
Yahoo!デベロッパーネットワーク
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
Spanner移行について本気出して考えてみた
Spanner移行について本気出して考えてみた
techgamecollege
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
AWSで作る分析基盤
AWSで作る分析基盤
Yu Otsubo
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
こわくない Git
こわくない Git
Kota Saito
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
Masahiro NAKAYAMA
設計書自動生成への取り組み~手書き設計書から脱却するには?~
設計書自動生成への取り組み~手書き設計書から脱却するには?~
SystemIntegrator2
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
Mori Ken
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
Yuta Shimada
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
What's hot
(20)
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
Docker Compose 徹底解説
Docker Compose 徹底解説
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
Spanner移行について本気出して考えてみた
Spanner移行について本気出して考えてみた
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
SpringBootTest入門
SpringBootTest入門
AWSで作る分析基盤
AWSで作る分析基盤
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
こわくない Git
こわくない Git
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
qpstudy 2014.04 ミドルウェア設計の勘所
qpstudy 2014.04 ミドルウェア設計の勘所
設計書自動生成への取り組み~手書き設計書から脱却するには?~
設計書自動生成への取り組み~手書き設計書から脱却するには?~
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
Viewers also liked
Heroku
Heroku
Ayumu Aizawa
Heroku Changelog in 2013
Heroku Changelog in 2013
Ayumu Aizawa
第二回IoT関連技術勉強会 ログ収集編
第二回IoT関連技術勉強会 ログ収集編
tzm_freedom
第5回web技術勉強会 暗号技術編その3
第5回web技術勉強会 暗号技術編その3
tzm_freedom
第一回Web技術勉強会 efkスタック編
第一回Web技術勉強会 efkスタック編
tzm_freedom
Dreamforce '15のお話
Dreamforce '15のお話
tzm_freedom
第2回Web技術勉強会 webパフォーマンス改善編
第2回Web技術勉強会 webパフォーマンス改善編
tzm_freedom
Githubでアカウントを晒した事故に対する対処
Githubでアカウントを晒した事故に対する対処
まえすとろ
ApexからAWS IoT叩いてみた話
ApexからAWS IoT叩いてみた話
tzm_freedom
Analytics CloudとEmbulkを使った社会的データの分析
Analytics CloudとEmbulkを使った社会的データの分析
tzm_freedom
初めてのGemの読み方
初めてのGemの読み方
Takao Baba
第4回web技術勉強会 暗号技術編その2
第4回web技術勉強会 暗号技術編その2
tzm_freedom
第一回IoT関連技術勉強会 分散処理編
第一回IoT関連技術勉強会 分散処理編
tzm_freedom
ゼロから始めるBlob
ゼロから始めるBlob
Kazunori Hamamoto
第3回web技術勉強会 暗号技術編その1
第3回web技術勉強会 暗号技術編その1
tzm_freedom
プロセスをしょうもないErrorで落とさないように頑張る
プロセスをしょうもないErrorで落とさないように頑張る
mookjp
PaaSに適したアプリケーション設計がもたらすメリット
PaaSに適したアプリケーション設計がもたらすメリット
Ayumu Aizawa
ElectronでExactTargetのGUIツールを作ってみた話
ElectronでExactTargetのGUIツールを作ってみた話
tzm_freedom
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
Yuji Otani
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみよう
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみよう
Hidemasa Togashi
Viewers also liked
(20)
Heroku
Heroku
Heroku Changelog in 2013
Heroku Changelog in 2013
第二回IoT関連技術勉強会 ログ収集編
第二回IoT関連技術勉強会 ログ収集編
第5回web技術勉強会 暗号技術編その3
第5回web技術勉強会 暗号技術編その3
第一回Web技術勉強会 efkスタック編
第一回Web技術勉強会 efkスタック編
Dreamforce '15のお話
Dreamforce '15のお話
第2回Web技術勉強会 webパフォーマンス改善編
第2回Web技術勉強会 webパフォーマンス改善編
Githubでアカウントを晒した事故に対する対処
Githubでアカウントを晒した事故に対する対処
ApexからAWS IoT叩いてみた話
ApexからAWS IoT叩いてみた話
Analytics CloudとEmbulkを使った社会的データの分析
Analytics CloudとEmbulkを使った社会的データの分析
初めてのGemの読み方
初めてのGemの読み方
第4回web技術勉強会 暗号技術編その2
第4回web技術勉強会 暗号技術編その2
第一回IoT関連技術勉強会 分散処理編
第一回IoT関連技術勉強会 分散処理編
ゼロから始めるBlob
ゼロから始めるBlob
第3回web技術勉強会 暗号技術編その1
第3回web技術勉強会 暗号技術編その1
プロセスをしょうもないErrorで落とさないように頑張る
プロセスをしょうもないErrorで落とさないように頑張る
PaaSに適したアプリケーション設計がもたらすメリット
PaaSに適したアプリケーション設計がもたらすメリット
ElectronでExactTargetのGUIツールを作ってみた話
ElectronでExactTargetのGUIツールを作ってみた話
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみよう
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみよう
Similar to 第三回IoT関連技術勉強会 データ通信編
CpawCTF 勉強会 Network
CpawCTF 勉強会 Network
Takaaki Hoyo
第7回勉強会 ネットワークの基礎
第7回勉強会 ネットワークの基礎
hakoika-itwg
ソシャゲにおけるサーバとクライアントの決めごと
ソシャゲにおけるサーバとクライアントの決めごと
peto_tn
システムと情報の数理・ネットワーク概論
システムと情報の数理・ネットワーク概論
shigaoki
TCP/IPの超キホン LT
TCP/IPの超キホン LT
fujiisusumu
コンピューターネットワーク入門
コンピューターネットワーク入門
Yusuke Miyazaki
Lesson01
Lesson01
MRI
TCP/IP完全理解
TCP/IP完全理解
VirtualTech Japan Inc./Begi.net Inc.
websocket-survery
websocket-survery
hogemaru_
ネットワークについて
ネットワークについて
Koji Kawaguchi
Packet
Packet
yamori813
WebRTCとSFU
WebRTCとSFU
Saki Homma
Web技術について~ネットワーク・http編~
Web技術について~ネットワーク・http編~
KoudaiKumazaki
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?
Kengo Nakajima
20140802 Bluetooth を使って Universall App で大連携
20140802 Bluetooth を使って Universall App で大連携
Takayoshi Tanaka
UDPプロトコルについて
UDPプロトコルについて
Daiki Hayakawa
20060520.tcp
20060520.tcp
Ken SASAKI
Janogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshi
Keisuke Ishibashi
Protocol Buffers 入門
Protocol Buffers 入門
Yuichi Ito
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
Ruo Ando
Similar to 第三回IoT関連技術勉強会 データ通信編
(20)
CpawCTF 勉強会 Network
CpawCTF 勉強会 Network
第7回勉強会 ネットワークの基礎
第7回勉強会 ネットワークの基礎
ソシャゲにおけるサーバとクライアントの決めごと
ソシャゲにおけるサーバとクライアントの決めごと
システムと情報の数理・ネットワーク概論
システムと情報の数理・ネットワーク概論
TCP/IPの超キホン LT
TCP/IPの超キホン LT
コンピューターネットワーク入門
コンピューターネットワーク入門
Lesson01
Lesson01
TCP/IP完全理解
TCP/IP完全理解
websocket-survery
websocket-survery
ネットワークについて
ネットワークについて
Packet
Packet
WebRTCとSFU
WebRTCとSFU
Web技術について~ネットワーク・http編~
Web技術について~ネットワーク・http編~
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?
20140802 Bluetooth を使って Universall App で大連携
20140802 Bluetooth を使って Universall App で大連携
UDPプロトコルについて
UDPプロトコルについて
20060520.tcp
20060520.tcp
Janogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshi
Protocol Buffers 入門
Protocol Buffers 入門
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
Recently uploaded
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Recently uploaded
(9)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
第三回IoT関連技術勉強会 データ通信編
1.
第三回IoT関連技術勉強会 データ通信編 田実 誠
2.
• データ通信に関する基礎知識 • データ通信の規約(プロトコル) •
HTTPの構造 • TCP vs UDP • IoTにおけるデータ通信の課題 • MQTT(詳細は別途) • Pub/Sub • SORACOM • まとめ アジェンダ
3.
データ通信の規約(プロトコル) • データ通信の規約をプロトコルと呼ぶ • ブラウザでURLを叩くとHTTP(S)のプロトコルでサーバと通信を行う •
メーラでメールを送信するとメーラがSMTP(S)のプロトコルでサーバと通信を行う • メーラでメールを受信するとメーラがPOP3(S)/IMAP(S)のプロトコルでサーバと通信を行う • プロトコルとは言語のようなもの。日本人と話すときは日本語で、アメリカ人と話すときは英語でコミュニ ケーションをとるように、コンピュータもデータ通信を行う場合は、その領域に特化した規約(プロトコ ル)に則って通信を行う。 • 例えばブラウザでWebサイトにアクセスするときはメールアドレスの情報は不要だが、メールを送受 信する場合はメールアドレスの情報は必要。 つまり、実現したいことに応じてプロトコルは大幅に変わる • 種類は色々あるが、結局のところデータ(バイナリ)を送っているだけ。効率良く送りたいから規約 (プロトコル)がある。
4.
ちなみに… プロトコルとかデータ通信とか難しいこと言っているように聞こえますが、要は”入出力”です。 ファイルにデータを書き出したり、ファイルからデータを読み込むことは サーバにデータを送信したり、サーバからデータが読みだすことは本質的には同じです。 バスを通じてローカルのディスクに格納されているデータにアクセスするのか、 ネットワークケーブルを通じてサーバのディスクに格納されているデータにアクセスするのかの違いでしか無いです。 実際、Linuxではファイル、デバイス、ネットワークからの読み書きに関してはほぼ同じインターフェースで行えます。 最近、プログラミングはフィルタリング、というような話を聞いたことがあるのですが、プログラムは入力に対して何かを出 力するモノで、結局のところ”入出力”に帰結します。 ブラウザを立ち上げて、Webサーバにアクセスするのは、サーバに対してデータを入力して、サーバが適切なデータをク ライアント(ブラウザ)に対して出力しているだけです。
5.
GET https://www.google.co.jp/ HTTP/1.1 Host:
www.google.co.jp Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36 X-Client-Data: CJa2yQEIprbJAQi/tskBCIqSygEItZTKAQj9lcoBCO6cygE= Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp, */*;q=0.8 Accept-Encoding: gzip, deflate, sdch, br Accept-Language: ja,en;q=0.8,en-US;q=0.6 Cookie: GoogleAccountsLocale_session=ja;… HTTPやPOP3の例 USER test@hoge.fuge.com¥r¥n +OK Password required.¥r¥n PASS fuga1234¥r¥n +OK logged in.¥r¥n STAT¥r¥n +OK 1 2426¥r¥n RETR 1¥r¥n +OK 2426 octets follow. Return-Path: <mtajitsu@uhuru.jp> Received: from mail-oi0-x235.google.com (mail-oi0-x235.google.com [IPv6:2607:f8b0:4003:c06::235]) by xxxxx.sakura.ne.jp (8.14.5/8.14.5) with ESMTP id u5BEO40F007925 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for <test@hoge.fuga.com>; Sat, 11 Jun 2016 23:24:05 +0900 (JST) (envelope-from mtajitsu@uhuru.jp) Received: by mail-oi0-x235.google.com with SMTP id u201so24545619oie.0 for <test@hoge.fuga.com>; Sat, 11 Jun 2016 07:24:05 -0700 (PDT) …
6.
HTTPの構造を少し掘り下げる HTTPヘッダ TCPヘッダ IPヘッダ
Etherヘッダ HTTPパケット HTTPボディ 送信元MACアドレス 宛先MACアドレス 送信元IPアドレス 宛先IPアドレス ポート番号 シーケンス番号 HTTPメソッド ヘッダ データ 誰が送る? 誰に送る? 何のソフトウェアに対して送る? データの番号札は?※ Webサーバへの指示(メソッド) データの付加情報 Webサーバに何のデータを送る? ※分割送信時の番号札 HTTPパケット=TCPパケット TCPヘッダ IPヘッダ EtherヘッダTCPデータ
7.
TCP vs UDP TCP •
データを送信したら、必ず相手がデータを受け取ったかどうかを確認する(確認応答) • 順序制御、再送制御、ウィンドウ制御、フロー制御 • コネクション確立のためのオーバーヘッド(3way handshake) • 確実にデータを送受信する必要がある信頼性が求められる用途 • HTTP(S)/SMTP(S)/POP3/IMAP/SMB/CIFS/MQTT(S)/(S)FTP(S)/SSH/Telnet /RDBMSのプロトコル… UDP • データ投げっぱなし。送信先がデータを受け取ったかどうかは無視。 • ちょっとくらいデータ欠損が発生しても問題ない速度重視な用途(動画)あるいは少量の データしか送らないもの(DNS、NTP等) • VoIP/DNS/NTP/RTP/RTSP/RTMP…
8.
IoTにおけるデータ通信の課題 • ネットワーク帯域が狭い • デバイス側(IoT
G/W)で利用できるマシンスペックが低い • セキュリティの為にデータを暗号化して通信をしたいが、暗号化のコストが高い(マシンスペック) • デバイス側のソースコードは書き換えづらいため、接続先を容易に変更できない • デバイスが乗っ取られた時の対処方法 • セキュリティ要件として閉域ネットワークにデータを送りたいが、そのためには専用回線を引く必要がある • 場所の都合上、有線LANを設置しづらい環境である • 無線LANは事前設定が難しい(セキュリティにも懸念)
9.
HTTP(S)をデバイス側で採用する際の問題点 • 汎用的に利用できるが故に、パケットサイズのオーバーヘッドが大きい • 1文字だけ送信するようなケースでもヘッダの文字列が必ず入る •
HTTP(S)自体は基本的にTCP接続を維持するようなプロトコルではないため、送受信においてTCPの 3way handshakeによるオーバーヘッドが生じる ※WebSocketやSSE(Server Sent Events)の話は別途 HTTPリクエスト(HTMLくださーい) HTTPレスポンス(HTML渡しまーす) SYN(これから通信するよー) SYN/ACK(OKよろしくー) ACK(じゃあ次のリクエストで送るよー) TCPを利用している以上、このオーバーヘッドが 必ず存在する (オーバーヘッドを減らすような仕組みは色々 あるが、今回は割愛)
10.
MQTT • M2M/IoT用の軽量=省電力でPub/Subなプロトコル。TCP。固定ヘッダは2Byte。 ※ただし軽量なのはMQTTヘッダだけ • ハブとなるサーバをブローカと呼ぶ •
Publishするサーバ→Publisher、Subscribeするサーバ→Subscriber • QoS(到達可能性)の制御 • Will(遺言) →任意のPublisher/Subscriberの接続が切れた時にトピックに対して指定のメッセージを送る • Retain →最後に送ったメッセージを保存(Subscribeする直前のメッセージがわかる) • 階層構造のTopic • Username/Passwordの認証機構もあり。MQTTSであればTLSのクライアント証明書による認証も利用可能。
11.
Pub/Sub? データを• 受け渡す方式の一つ メルマガで• 例えると、メルマガを発行する人がPublisher、メルマガを受信する人がSubscriber、メールを配 信したり、メルマガ登録者を管理するメールサーバをBroker 情報発信者•
はPublishして情報が欲しい人だけSubscribeする メルマガ• 登録者はメールを発行する人に関しては知らなくて良いし、メルマガを発行する人もメルマガ登 録者を知る必要が無い(メールサーバのみが知っていれば良い) スケールし• 易い(=Publisher/Subscriberを増やしやすい) 柔軟• なシステム構成(=送受信側の接続先を柔軟に変更可能) メルマガの登録をする人→Subscriber メルマガの登録をする→Subscribe メルマガを発行する人→Publisher メルマガを発行する→Publish メールサーバ→Message Broker メルマガ→Topic
12.
HTTPヘッダ TCP IP
Ether 各パケットのイメージ MQTT ヘッダ TCP IP Ether データ TCP IP Ether HTTPパケット MQTTパケット TCPパケット(Raw) データ データ 暗号化されたHTTPパケット(ヘッダ+データ) TCP IP Ether HTTPSパケット SSL/TLS
13.
• プログラマブルなLTE/3Gデータ通信網→Air • IoT用プロキシ(HTTP[S]/MQTT[S])→Beam •
閉域ネットワークとの通信(Amazon VPC)→Canal • 閉域ネットワークとの通信(専用線)→Direct • SIM認証を活かした他サービスへの認証の仕組み→Endorse • 他サービスとの連携(AWS/Azure)→Funnel SORACOM IoTのデバイス側が抱える課題を解決するサービス
14.
Air LTE/• 3Gのモバイルデータ通信を提供(スマホのSIMと同じ) データ• 通信料に応じた従量課金 ユーザコンソール•
、APIを通じたSIMの一括操作 SIM• の利用可否(=通信可否) 通信速度• データ• 使用量の監視 Air SIM• のID カスタム• DNSの設定 デバイスの• 活動検知、不正利用検出 動的• に登録されるホストの名前解決 出典: https://soracom.jp/iot/ 出典: https://soracom.jp/overview/
15.
Beam • 暗号化をSORACOM側でやってくれる仕組み =プロトコル変換 • HTTP→HTTPS •
MQTT→MQTTS • TCP→HTTPS • UDP→HTTPS • 接続先もプロキシ側で変換することができる 例)beam.soracom.io→ap.salesforce.com • グループ単位での設定(コンソール/API) 出典: https://soracom.jp/services/beam/ 出典: https://soracom.jp/services/beam/
16.
Endorse SIM• を通じたSSO Twitter• アカウントでログイン、facebookアカウントでログインと同じように「Air
SIMでログイ ン」を実現したもの そもそも• SIMは最初に基地局と認証を行うので、SORACOMにアクセスできる=認証されて いる状態である その• 「認証されている状態」を以って他のサービスにログインする仕組み これにより• 、Webサービス用の認証情報をSIM以外に持つ必要がなくなる これまではデバイス• 内に認証情報を別にデータとして持たせていたが、その必要が無くなる • 高い耐タンパ性 (SIM の内部データを不正に読み取ったり改ざんしたりすることが困難な性質)を備えて おり、複製を作ることは非常に困難です。 SIM• には、International Mobile Subscriber Identity (IMSI) と呼ばれる世界で固有の ID が書き込まれ ています。IMSI はモバイルネットワーク事業者ごとに発行され、モバイルネットワーク事業者側に登録 されていなければ、データ通信は有効となりません。 IMSI• を基に通信元を特定し、SIM 内にしかない秘密情報を使った鍵交換を行って認証や通信の暗号化を 行います。 出典: https://soracom.jp/services/endorse/
17.
出典: https://soracom.jp/services/endorse/ Endorseの利用フロー
18.
Funnel • Beamは接続先を変更するだけ(プロキシ)だったが、Funnelは外部サービスとの連携に特化したサービス • IoT系外部サービス(Amazon
Kinesis Stream、Amazon Kinesis Firehose、Microsoft Azure Event Hubs)に対してデータを送信できる • デバイス⇔基地局間のプロトコルはTCP/UDP/HTTP • 現在対応しているサービスは基本的にIoT向けメッセージキューサービス 出典: https://soracom.jp/services/funnel/
19.
IoTにおけるデータ通信の課題の解決 ネットワーク• 帯域が狭い →MQTT/SORACOM Air(LTE/3G) デバイス•
側(IoT G/W)で利用できるマシンスペックが低い →MQTT/SORACOM Air セキュリティの• 為にデータを暗号化して通信をしたいが、暗号化のコストが高い(マシンスペック) →SORACOM Beam/Canal/Direct デバイス• 側のソースコードは書き換えづらいため、接続先を容易に変更できない →SORACOM Beam/Funnel デバイスが• 乗っ取られた時の対処方法 →SORACOM Air セキュリティ• 要件として閉域ネットワークにデータを送りたいが、そのためには専用回線を引く必要がある →SORACOM Canal/Direct 場所• の都合上、有線LANを設置しづらい環境である →SORACOM Air 無線• LANは事前設定が難しい(セキュリティにも懸念) →SORACOM Air
20.
• 色々とプロトコルはあるけど基本データを送るだけ • Pub/SubはTopicを介してデータを送受信するメッセージング方式 •
MQTTは非力なデバイスが多いM2M/IoT向けのプロトコル • SORACOMはIoTのデータ通信における様々な課題を解決するサービス • プログラマブルなデータ通信網(Air) • デバイス側の負荷を減らせる各種機能(Beam、Funnel) • デバイス管理側の負荷を減らせる各種機能(Air、Beam、Endorse) • セキュアな接続(Beam、Cannal、Direct) • 外部サービスとの連携(Beam、Endorse、Funnel) まとめ
21.
• SORACOMホームページ https://soracom.jp/ • JWT試したい方はこちらで https://jwt.io/ •
TCP/UDP http://www.infraexpert.com/study/tcpip12.html • MQTT http://mqtt.org/ http://www.slideshare.net/naotomatsumoto/itrc36-20141126nmatsumotov1 http://www.slideshare.net/r_rudi/mqtt-meetup-in-tokyo 参考URL
Download now