Recommended
PDF
「さくらのクラウド」におけるVyattaの活用事例
PPTX
PPTX
plotnetcfg入門 | Introduction to plotnetcfg
PDF
PDF
Xeon dとlagopusと、pktgen dpdk
KEY
PDF
Lagopus as open flow hybrid switch 実践編
PDF
PDF
PPT
PDF
Hydrogen → Helium での Linux kernel の違い
PDF
RouterBOARD with OpenFlow
PDF
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
PDF
SDNソフトウェアスイッチlagopus for FreeBSD
PDF
PDF
PDF
ODP
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
PDF
PDF
PDF
PDF
KEY
Openvswitch vps 20120429資料
PPT
ZIP
PDF
Running lagopus on Xeon D
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第9回授業-Web公開用
PPTX
20120516 v6opsf-ngn final
PDF
Armored core vのオンラインサービスにおけるクラウドサーバー活用事例
PDF
More Related Content
PDF
「さくらのクラウド」におけるVyattaの活用事例
PPTX
PPTX
plotnetcfg入門 | Introduction to plotnetcfg
PDF
PDF
Xeon dとlagopusと、pktgen dpdk
KEY
PDF
Lagopus as open flow hybrid switch 実践編
PDF
What's hot
PDF
PPT
PDF
Hydrogen → Helium での Linux kernel の違い
PDF
RouterBOARD with OpenFlow
PDF
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
PDF
SDNソフトウェアスイッチlagopus for FreeBSD
PDF
PDF
PDF
ODP
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
PDF
PDF
PDF
PDF
KEY
Openvswitch vps 20120429資料
PPT
ZIP
PDF
Running lagopus on Xeon D
Similar to P2Pって何?
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第9回授業-Web公開用
PPTX
20120516 v6opsf-ngn final
PDF
Armored core vのオンラインサービスにおけるクラウドサーバー活用事例
PDF
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第10回授業-Web公開用
PPT
PDF
『どうする?どうやる? データセンター間ネット ワーク』 - 802.1aq(SPB)/TRILL@JANOG29
PDF
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
PDF
Cloudianの構築と運用の基礎 (Cloudian Summit 2012)
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第5回授業-Web公開用
PPTX
PDF
Kyoto Tycoon Guide in Japanese
PDF
PDF
PDF
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
PDF
PDF
kibayos-PIAX & SkipGraph-071207
PPTX
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
More from Junya Yamaguchi
PDF
PDF
戦国時代を生きた「黒田官兵衛」とWeb時代を生きる「エンジニア」
PDF
量子コンピュータ(Quantum Computer)
PDF
Twilio Usecase at iPROS in Japan
PDF
PDF
PDF
PDF
KEY
KEY
KEY
Marketing Automation Study
KEY
PPT
KEY
KEY
Recently uploaded
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
PDF
PMBOK 7th Edition_Project Management Context Diagram
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
PDF
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
PDF
PMBOK 7th Edition Project Management Process Scrum
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
PDF
PMBOK 7th Edition_Project Management Process_WF Type Development
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
P2Pって何? 1. 2. Winny?
不正ダウンロードを
助長する技術?
企業や社会の敵?
マニアな人たちの
おもちゃ?
3. いやいや、
P2Pは、
あなたのそばにいます。
そして、
今の、これからの
IT社会を支えています。
4. 5. 6. 7. マルチタスキング
Retina Display
App Store
iBooks
操作性/UI
8. 9. junya100 Junya Yamaguchi
iPhone4 Keynote FaceTime P2P
NAT SIP STUN TURN ICE
09 6 8
10. 11. 12. Online
Games
MO(Multiplayer Online)
13. オンラインゲーム ネットワーク概念図
プレイヤーC
220.X.X.X
NAT
ルータ
サーバ 223.X.X.X
FTTH
192.168.X.X
FTTH FTTH
221.X.X.X 222.X.X.X
NAT
プレイヤーA NAT プレイヤーB
192.168.X.X
192.168.X.X
14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. コンシステント・ハッシング
(Consistent Hashing)
DHT
(Distributed Hash Table)
構造化オーバーレイ
(Structured Overlay)
26. 27. 28. 29. STUN
Server
STUN Server
Peer A ( Download Peer B ( Upload
Uploader Server ExternalRegist
Uploader IP Peers ExternalPort
Downloader Uploader PeerRequest
Download Server SessionRegist
Uploader PeerResponse
Uploader Downloader PeerRequest
Downloader Peer Downloader Uploader HandShake
30. InetSocketAddress remoteEndPoint = null;
DatagramChannel socketChannel = (DatagramChannel) channel;
if (ConfigUtils.COMMON.getBoolean(CommonConfig.KEY_NAT_TRAVERSE_MODE)
&& remotePeer.isRequiredNatTraverse()) {
STUNClient stun_client = new STUNClient();
for (int retried_count = 0; true; retried_count++) {
remoteEndPoint = stun_client.handShake(socketChannel,
remotePeer.getIp(), remotePeer.getPort(), remotePeer
.getInternalPort()), remotePeer.getPeerId());
if (remoteEndPoint != null) {
break;
} else {
if (retried_count >= HANDSHAKE_RETRY_COUNT) {
LogUtils.LOG.error("HandShakeが失敗しました");
break;
} else {
LogUtils.LOG.info("HandShake Timeoutしました");
continue;
}
}
}
} else {
remoteEndPoint = new InetSocketAddress(remotePeer.getIp(),
remotePeer.getPort());
}
if (remoteEndPoint != null) {
setupSocketOptions(socketChannel.socket());
socketChannel.configureBlocking(false);
socketChannel.socket().setReuseAddress(true);
socketChannel.connect(remoteEndPoint);
}
31.