Upgrade to Pro — share decks privately, control downloads, hide ads and more …

klab インターン成果物発表

khwarizmi
August 31, 2018

klab インターン成果物発表

khwarizmi

August 31, 2018
Tweet

More Decks by khwarizmi

Other Decks in Programming

Transcript

  1. 自己紹介 ・河原颯太(かわはらそうた) @khwarizmi6514 ・法政大学応用情報工学科 学部4年 金井(ネットワークセキュリティ)研究室所属 ・小学5年から野球を初めて高校3年までやっていた. ・春日部高校出身です! (これを言うといろんなところで先輩後輩が釣れることに最近気 が付いた)

    ・パソコンとは無縁の生活だったが, 大学入学時, 気が付いたらパソコンをやらなければ いけなくなっていた. ・元は数学が少しだけ好きだっただけの人. 最近非古典論理学に興味あるけどあんまり やってない. 今は数学嫌いだし全くできないです.
  2. 今までやってきたこと ・(大学)1年次, なんとなくプログラミング入門する. (C, C++) ・2年進学前, サーバ保守管理みたいなお仕事のインターンを始める. linuxに初めて触っ た! そのままアルバイトに.

    ・3年春, 今の研究室に配属. @slankdevにタゲられる. ・3年秋, ゲーム会社のインフラ部 dockerをやる. ・3年秋-冬, @slankdevにパケットを食べさせられる. ・4年, DPDKをやる.
  3. DPDKとは ・Data Plane Development Kit ・Intel が公開した高速なパケットIOを提供するライブラリ ・6WING が dpdk.org

    を立ち上げ, 高性能化. Intel が dpdk.org が公式と認定. ・BSDライセンス. バージョンは最新が18.08, stableが18.02.2 ・公称、”Over 160Mpps” (64byte(ショート)パケットで約80Gbps 1024byteパケットで約1300Gbps)
  4. ethernet が持つ情報 struct ether_port { uint16_t port_num; ethernet_addr mac_addr; };

    struct ether_port ports[ETHER_PORT_MAX_NUM]; 物理層の情報(今回はDPDKしか選択肢がないので 実体を入れてる ethernetが持つべき情報 ethernetのインタフェーステーブルみたいなもの
  5. IPが持つ情報 struct ip_interface { struct ether_port *port; uint32_t addr; ...

    }; struct ip_interface interfaces[IP_INTERFACE_NUM]; ethernetのインタフェース情報のポインタを持つ. 具体的に中の情報を知っている必要はない. IPが持つべき情報 IPのインタフェーステーブル
  6. より高度な抽象化 (ex. IP struct ip_interface { void *link_port; void *tx_funk(void

    *link_port, ...); void *rx_funk(void *link_port, ...); ... } IPは, リンク層の情報をほぼ持ってい なくて良い. 起動時に各ポインタをIPに渡すだけで 良い.