Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

VOYAGE_GROUP_20200423

82 views

Published on

This is test

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

VOYAGE_GROUP_20200423

  1. 1. 共有ライブラリを用いて TCP通信してみる エンジニア志望学生LT大会 - TechStudyGroup #1 2020/04/23 1 OthloTech 吉川 大貴
  2. 2. 自己紹介(よしかわって?) 愛知工業大学 大学院1年 モバイルネットワーク分野を研究 みんなと一緒でテクノロジが大好き • ハワイで行われた国際学会に参加 InternShip • Spring Intern Infrastructure 2018 - Cookpad • Treasure 2018 - VOYAGE GROUP • Sunrise 2nd 2019 - VOYAGE GROUP 2
  3. 3. Internet Protocol(IP)ってなに IPは、インターフェイスからパケットを送出す るのみで、相手先まで確実にパケットが届くこ とは絶対ではない。 そのため、確実な送受信を必要とする場合、IP より上位のトランスポート層のプロトコルであ るTCPなどを使用する必要。 3
  4. 4. IPv4とIPv6の違い 4 IPv4アドレスは、32ビットのアドレス空間を持つ。2^32(=約43億)個 IPv6アドレスは、128ビットのアドレス空間を持つ。2^128個 Q. なぜIPv4とIPv6は相互通信できないか A. 上記のようにヘッダが異なるため相互通信不可
  5. 5. TCP通信ってなに 5 TCPデータ TCP ACK 情報の送信 ACKの返信
  6. 6. 共有ライブラリってなに 6 Program A 静的ライブラリ (libtcpip.a) Program B 静的ライブラリ (libtcpip.a) ● 静的ライブラリ では Program AとProgram Bのビルド時に、 静的ライブラリとリンクする。その ため、実行ファイルの一部になる。 静的ライブラリを更新する場合は Program A、Program Bを再度ビルド する必要がある。 Program A 共有ライブラリ (libtcpip.so) Program B ● 共有ライブラリ では Program AとProgram Bは実行時に共 有ライブラリとリンクする。 共有ライブラリを更新しても Program AとProgram Bで使用するイ ンターフェースに変更が無ければ、 再度ビルドする必要はない。
  7. 7. 共有ライブラリの作り方 ビルドツールを利用する • autotools • cmake • Meson 依存関係をそれとなく解決してくれるツール 7
  8. 8. Autotoolsについて GNU Autotoolsは主に、Autoconf, Automake, libtoolsの3つから形成されている。 開発者は、Makefile.amとconfigure.acを提供す ることにより、システムを構築し、私ステムの 外部依存関係とビルドシステム構成を管理する。 8
  9. 9. GNU Autotools workflow 9
  10. 10. Makefile.amってなに Makefile.amは移植性の高いMakefileを作るための Makefile.inの雛形。Makefile.inはconfigure scriptで Makefileに変換。 10
  11. 11. Configure.acってなに configure.acとは、autoconfでconfigureスクリプト に変換されるファイル。中身はマクロが大量に 定義されているShell Script。 11
  12. 12. FFI(Foreign Function Interface)について FFIとは、あるプログラミング言語 から他のプログラミング言語で定 義された関数などを利用するため の機構。FFIは、CやC++などの関数 やメソッドを呼び出し、特定のプ ラットフォームやOS固有の機能な どを利用するために用いられる。 12
  13. 13. テストコードを書く Autotoolsでは、test以下がテスト対象となる Makefile.amに以下のように記載することで、 テストコードを作成可能 13
  14. 14. 共有ライブラリのヘッダー Autotoolsでは、Makefile.amにヘッダーファイ ルのパスを書き込むことにより、src内のコー ドで呼び出し可能 14
  15. 15. 共有ライブラリのソース src内のMakefile.amを作成 ヘッダーファイルの読み込 みとlaファイルの作成を行 うために lib_LTLIBRARIES を 定義 15
  16. 16. テストしてみよう テストコードを動かすコマンドは make check で実行 テストがPASSすると緑、FAILなら赤 16
  17. 17. Demo そろそろ飽きるよね? 動かしてみます (教授に見つかりませんように) 17
  18. 18. もっと共有ライブラリ作成したい 18
  19. 19. Makefile.amの詳細 19
  20. 20. Configure.acで必要なものを 20
  21. 21. CIの導入をする 21
  22. 22. テストコードをもっと深掘り 22
  23. 23. SSL/TLS通信したくない? 23
  24. 24. SSL/TLS通信ってなに 24
  25. 25. OpenSSLを呼び出したい 25

×