タグ

開発とネットワークに関するiwwのブックマーク (20)

  • ESP32系MCUで無線LAN受信バッファが枯渇するときの調査方法 - Nature Engineering Blog

    ファームウェアエンジニアの井田です。 今回はESP32系MCUで無線LANによる受信ができなくなる問題の原因と調査方法について解説します。 背景 ESP32にてそこそこ頻繁に無線LAN経由の通信を行っているときに、環境によっては急に通信ができなくなる現象が発生しました。 そこで、Wiresharkを用いて通信状況を確認すると、どうもESP32側からの送信パケットは届いているものの、ESP32へのパケットは受信されていないような状況が確認されました。 例えば、ESP32側からDNSのリクエストを投げて、ルーターが返答をしているのにも関わらず、ESP32のログ上は名前解決に失敗した状態になっています。 また、TCPによる通信も何度も再送が発生しており、よくよく見てみると、ESP32側がACKを返さないので、通信相手のサーバが再送してきているという状態でした。 現象より、ESP32の無線LANド

    ESP32系MCUで無線LAN受信バッファが枯渇するときの調査方法 - Nature Engineering Blog
  • アーケードゲームを支えるデバッグ術 - SEGA TECH Blog

    ブログ読者のみなさん、はじめまして。 株式会社セガのベテランプログラマー阿部です。 このエントリーではデバッグ手法のあれこれについての体験談と、デバッグをテーマに一昨年に実施されたプログラマー向け新人研修の概要をお伝えしたいと思います。 EXE ファイルのデバッグ イーサネット絡みのデバッグ 周辺機器絡みのデバッグ デバッグスキルブートキャンプ 黒子に徹する、裏方系エンジニア EXE ファイルのデバッグ 同僚が作った EXE ファイルが手元にあり、あなたはこれを Windows で起動しようとしています。 起動してみたところ何も反応がなく、しかもそれは想定外のことでした。 「何コレ、動かないんだけど」とあなたが同僚に文句を伝えると、同僚はあなたに返します。 「こっちでは動いてるよ」 困りましたね。 あなたの手元には EXE のソースコードも無ければ、Visual Studio もありません

    アーケードゲームを支えるデバッグ術 - SEGA TECH Blog
  • DMMはAWS“から”オンプレミス“に”切り替える サーバーとネットワークのコストから見直す適切な環境選び

    DMM. comのITインフラ部が今期に注力している取り組みについて、事例を紹介しつつ話す「DMM meetup #31 ~DMMのインフラを支えるITインフラ部の取り組み紹介~」。ここでSRE部の松浦氏が登壇。WebRTCの配信システムについてと、配信サーバーをAWSからオンプレミスに切り替える理由を紹介します。 AWS“から”オンプレミス“に” 松浦庸介氏(以下、松浦):SRE部の松浦から「WebRTCの配信システムをAWSからオンプレミスに切り替えている話」ということで発表したいと思います。 まず、簡単に自己紹介をしたいと思います。2020年の5月に入社して、それ以来WebRTCのリアルタイム配信システムの開発や運用を担当している、松浦と言います。日はよろしくお願いします。 まずこのタイトル、みなさん「AWS“から”オンプレミス“に”」というところ、気になってる方がいるんじゃな

    DMMはAWS“から”オンプレミス“に”切り替える サーバーとネットワークのコストから見直す適切な環境選び
  • HTTP/2における双方向通信とgRPCとこれから - Qiita

    この記事は 第2のドワンゴ Advent Calendar 2017 最終日の記事です。 はじめに ウェブ技術を語る上で欠かすことのできない要素として、HTTPがある。 従来のHTTP/1を無くして、ここまでのウェブの発展はなかったといえるだろう。言うまでもなく、HTTP/1が我々人類に齎した功績は大きい。 しかしその一方で、その規格のシンプルな原理原則に縛られた結果、要件を達成するために非効率なネットワーク使用を前提とするシステムが量産されるなど、HTTP/1がもたらした技術的負債も存在する。 その中の一分野として、双方向通信に着目したときに、HTTP/1からHTTP/2へのアップグレードによってどのような変化がもたらされたか。 稿ではHTTP/2という規格と、それが持つ可能性の一端としてgRPCについての仕組みを紹介し、従来とこれからのWeb開発における双方向通信について述懐する。

    HTTP/2における双方向通信とgRPCとこれから - Qiita
  • ネットワーク越しリトライ考 - その手の平は尻もつかめるさ

    ここ最近では何らかのインターネットサービスを構築・運用するにあたって、ネットワーク越しのリトライを考えることは避けられなくなりつつあります。 micro services のようなアーキテクチャを採用している場合はサービス間のメッセージのやり取りはまず失敗する前提 (つまりリトライをする前提) で組む必要がありますし、たくさんのクライアントがいてそのクライアントが定期的に何かを処理してセントラルにデータを送ってくる IoT のようなシステムを構築する時もその処理のリトライをよく考える必要があります。 というわけで「ネットワーク越しのリトライ」についてここ最近考えていることをざっくりと書き留めるものであります。 前提 リトライをする側をクライアント、リトライを試みられる側をサーバと呼称します リトライにおいて、サーバおよびネットワークはクライアントよりも弱者です クライアントはリトライをコン

    ネットワーク越しリトライ考 - その手の平は尻もつかめるさ
    iww
    iww 2020/11/18
    何か実行する系のコマンドのリトライは悩む。 応答の返信に失敗していただけの時はコマンド実行しないようにするとか
  • Linuxネットワークドライバの開発 - Handwriting

    この記事はLinux Advent Calendar 2016 9日目の記事です。 遅刻してしまい申し訳ございません。。。 とある事情があって1ヶ月半ほど独自NICのLinux向けのネットワークドライバを開発していた。 今回はARM用のデバイスドライバを開発した。NICはXilinx社のFPGAであるZYBOを用いて開発した。 まだ十分に実用段階というわけではないが、ひとまず独自NIC経由でのpingやiperfが通ったので、後学のために知見を残しておきたい(誰得だ、という感じだが)。 ソースコードはまだ公開されていないが、そう遠くないうちに公開する予定(たぶん)。 はじめに Linuxのデバイスには キャラクタデバイス - バイト単位のデータ通信 (e.g. シリアルポート) ブロックデバイス - ブロック単位のデータ通信 (e.g. ディスク) ネットワークデバイス の3種類がある。ネ

    Linuxネットワークドライバの開発 - Handwriting
  • ローディング時のズルい進捗表示

    今開発中のPlayer!のログイン・登録画面で、こんな進捗表示をしていますが、これ実はフェイクだったりします( ´・‿・`) (Qiitaの画像サイズ制限が厳しくて粗いです。キレイなものは実際にアプリダウンロードしてご覧下さい。) 経緯 元々、この画面はこういう進捗表示では無く、単にインジケーターがクルクルするだけで、進捗状態が分からないものでした。 特にネットワークが悪いところだと、バグって固まってしまったのでは?とユーザーを不安にさせるようで、たまにそういう声を聞くことがありました。 登録フローは大事なところなので、そういうところでこれが原因で離脱してしまうと残念なので、改善が必要でした。 そこで、ネットワーク処理にもたつきつつもちゃんと正常に処理をしているということを示すために、進捗を表示することにしました。 ただ、例えば大きな画像などメディアファイルダウンロードなどならともかく、こ

    ローディング時のズルい進捗表示
  • TCPの再送タイムアウトを制御したい

    TCPの再送タイムアウトで最近まで知らなかったことがあったのでメモ。 たとえば、APサーバとDBサーバがあるとする。 AP-DB間のDBCPで使うTCPコネクションは、DBサーバがノードダウンしたのであればさっさと再送リトライをあきらめて切れてほしいと思うのが普通だろう。 このTCPの再送リトライ処理は、何もいじらないと15分以上続くので、 できればTCPコネクション単位で細かく調整させてほしいと思うのは人情だと思う。 Linux の場合、昔はこの調整をしようと思うと、sysctl を使って /proc/sys/net/ipv4/tcp_retries2 の値を書き換えるしかなかった。 これは、リトライ回数でしか指定できず、そのリトライ間隔が回数ごとに変わっていく(長くなる)のでわかりにくい上に、そのOS上の全TCPコネクションで有効になってしまうという問題があった。つまり、このオプション

  • 光ファイバーの限界、ついに突破される

    より速く、安価な未来へ! 光ファイバーの速度限界に達した時、インターネットの終焉が始まるという説。これ、杞憂かも知れません。先週の木曜日、技術者たちがサイエンスに投稿した論文によると、彼らは光ファイバーの速度限界を突破し、将来的により大量のデータを遠くに、低コストで送信する可能性を切り開いたそうです。 世界全体でインターネットの需要が高沸するなか、電気技術者たちは、データをより高速で伝達するため、光ファイバーケーブルを通る信号を強くする事で対応してきました。しかし、光ファイバーには物理的な限界があります。出力をあげすぎると、データを運ぶレーザー同士が干渉しはじめ、最終的に信号が劣化し、データが消えてしまうのです。 ここ最近、速度限界によるインターネット恐慌がまことしやかに囁かれるようになりました。専門家の中には、終焉の時は早ければ5年以内にやってくるという人もいます。 だからこそ、この新し

    光ファイバーの限界、ついに突破される
  • オンラインソフトを使え! 「第12回 Netcat」

    文書は、NetworkWorld誌に寄稿した記事の原稿を、IDGジャパン編集部殿の許可を得た上で掲載したものです。 システム管理をしていると、システムの動作確認などでSMTPサーバやWebサーバ等に直接アクセスし、生のプロトコルで通信したいといったケースがよくある。今回はそのような時に便利なツール、「Netcat」を紹介しよう。 NetcatはHobbit氏によって開発された、汎用TCP/UDP接続コマンドラインツールである。接続先IPアドレス(もしくはホスト名)とポート番号を指定することにより、その接続先の該当するポートで待ち受けているサーバソフトウェアと通信することができる。またリッスンモードでは、指定したポート番号で通信を待ち受け、接続してきたクライアントソフトウェアと会話することも可能だ。 Netcatのインストール Netcatは1995年から1996年にかけて開発が行われ、1

  • CentOS on EeeBOX/mjpeg-streamerでストリーミング配信 - snagplaces on @wiki

    #right{最終更新日時:&update(j) [&link_edit(text=編集)]} *はじめに mjpg-streamerは、UVCカメラに対応したストリーミング配信ができます。 静止画のほか、Motion-Jpeg、JavaJavaScript、VideoLANの配信に対応しているので、ストリーミングの基を見るには最適なパッケージだと思います。 **注意事項 -libjpeg-develがインストール済み(libjpegだけではダメ) -音声は出ません。音声も欲しい場合はffmpeg等による配信を検討してください。 #contents ---- *mjpg-streamerのダウンロードとコンパイル mjpg-streamerのダウンロード(svnなので常に最新版です) # svn co https://mjpg-streamer.svn.sourceforge.net/

    CentOS on EeeBOX/mjpeg-streamerでストリーミング配信 - snagplaces on @wiki
  • ソーシャルゲーム運営地獄 - やねうらおブログ(移転しました)

    実際に関係者から聞いた話なのだが、いま、底辺のソーシャルゲーム会社は大変なことになっているらしい。底辺じゃない会社もそれなりに大変なものかも知れないが、底辺の会社はそれどころの騒ぎではないようだ。 まず、プログラマーの力量に合っていない。 「ソーシャルゲーム(の開発を)舐めんな」みたいな話は大手の開発会社のプログラマーからよく聞くが、人数がある日突然何万ユーザーも増える。このへんの流入する人数の調整が利かない。 もともと何十万人規模の接続をさばくには、MMORPGなどのオンラインゲームよりもシビアであり(普通、MMORPGでもワールドがわかれていて、1つのサーバーの常時接続人数は数千人規模に収まるので)、大人数になったときにうまくスケールアウトするように設計するためには、ゲームシステム自体がそのへんを考慮してうまく練られていないといけない。 ところが、底辺ゲーム会社だと、社長がそのへんの理

    ソーシャルゲーム運営地獄 - やねうらおブログ(移転しました)
    iww
    iww 2013/09/17
    典型的なデスマーチでこわい。 死ぬまでの距離が短いのが救いかな
  • 全ては時の中に… : 【ネットワーク】Wiresharkで自端末へのパケットをキャプチャする方法

    2009/2/119:54 【ネットワーク】Wiresharkで自端末へのパケットをキャプチャする方法 ネットワークを流れるパケットをキャプチャするためのソフトウェアにWiresharkというソフトがあります。 このWiresharkでは、送信元と宛先が同じ端末のパケット(自ホストに対して送信したパケット)をキャプチャすることができません。 これを取得できるようにする方法について説明します。 以下は、Windows XP SP2での操作内容です。 (Vista等では異なる可能性があります) まず、最初に自ホストに対して送信したパケットがWiresharkでキャプチャ出来ないことを確認します。 自ホストに対してパケットを送る単純な方法は、localhostやループバックアドレス(127.0.0.1)に対してpingを送る方法です。 以下、操作手順です。 1.Wiresharkを起動する。 2

    iww
    iww 2011/03/29
    これでもう別マシンを用意しなくて済む
  • Manpage of TCP

    Section: Linux Programmer's Manual (7) Updated: 2008-08-08 Index JM Home Page roff page 名前 tcp - TCP プロトコル 書式 #include <sys/socket.h> #include <netinet/in.h> #include <netinet/tcp.h> tcp_socket = socket(AF_INET, SOCK_STREAM, 0); 説明 これは RFC 793, RFC 1122, RFC 2001 で定義されている TCP プロトコルを NewReno 拡張と SACK 拡張を含めて実装したものである。 TCP は、 ip(7) 上の二つのソケット間に、信頼性の高い、ストリーム指向の全二重 (full-duplex) 通信を提供する。 v4 と v6 の両方のバージ

  • epollのなかみ - moriyoshiの日記

    よく C10K 問題とかいって epoll(7) の話が出てきて select(2) 遅いね poll(2) 遅いねってなるんだけど、正直なところ、これらのシステムコールを実際に使ってコードを書いてみたひとはどのくらいいるのだろう。ましてや eventpoll が何やってるか知っている人はそんなに多くないんじゃないだろうか。もう O(n) だの O(1) だのって煙に巻かれるのもうんざりだ。 というわけで、2.6.26 の fs/eventpoll.c のコードを読んでみた。正直 Linux カーネルにすごく詳しいわけでもないので、誤りがあったら適宜突っ込んでもらえると幸いです。 前提知識として VFS モジュールがどうなってるかとかは LinuxのFSモジュールを書いてみる LinuxのFSモジュールを書いてみる (その2) のソース中のコメントを追ってもらえればと。 登場する構造体 e

    epollのなかみ - moriyoshiの日記
  • はてなブログ | 無料ブログを作成しよう

    仲春はゆっくりと通り過ぎる 寝て起きたら3月である。今日の東京の最高気温は20度を超えている。正月のインフルエンザが完治して、これでやっと健康で文化的な年度を始められるぞ、と意気込んだのも束の間、今度は原因不明の高熱を出して1週間寝込んだ。 脳がグツグツ煮える音が聴こえそうなほど…

    はてなブログ | 無料ブログを作成しよう
  • Geekなぺーじ : Linuxネットワークプログラミング

    ここでは、Linuxを使ったネットワークプログラミングの説明を行いたいと思います。 ここで対象としている読者は、ネットワークプログラミング初心者(もしくは入門者)かつLinux環境でプログラミングを行いたい人です。 開発環境としては、C言語+gccを想定しています。 説明内容は主にソケットプログラミングになります。 なお、C言語そのものが初めての方は「C言語入門」も参考にどうぞ。Windows専用には書いてませんが主にC言語で共通の部分を解説しています。 コードを書く前の準備 まず、gccを使える状態にしないといけません。 ディストリビューションにもよりますが、Linuxを普通にインストールしただけでは開発環境は入りません。 開発環境を用意するためには、gccやglibcなどのrpmを必要に応じてインストールしてください。 次に、エディタが必要になります。 mule、emacs、xemac

  • Geekなぺーじ : みんなが知らずに使ってるAkamai

    Akamaiさんでのセミナーに参加してきました。 個人的にはAkamaiさんと言えば「あまり一般的には知られていないけど使っていない人はほぼいない」企業というイメージがあります。 あまりに内容が楽しかったので、セミナーで色々質問しまくって聞いてしまいました。 想像以上に色々凄いと思いました。 ブロガーのyasuyukiさんが企画し、Akamaiさんにお願いして実現したプライベートセミナーでした。 元々はyasuyukiさんがAkamaiさんのセミナーを聞いて「面白い」とtwitter上で囁きまくっていて、その後「プライベートなセミナーやったら来ますか?」とのオファーを頂きました。 昔からAkamaiさんのCDN技術には非常に興味があったので「是非お願いします」とお願いしました。 セミナー参加者募集はyasuyukiさんのブログとtwitter上で行われ、16人の参加者がいました(アカマイさ

  • [ITproカンファレンス:IPv4枯渇対策]実践してわかったWebアプリをIPv6に対応させる7つの鉄則

    「サーバー・ソフトのIPv6対応はたやすい。だが,DNSやアクセス環境の整備など,Web開発者の立場からは見落としがちな盲点がある。IPv6化実践プロジェクトに取り組んだ結果,いくつかの確認ポイントが判明した」---。2009年2月23日,ライブドア執行役員CTA情報環境技術研究室長の伊勢幸一氏はITproテクノロジ・カンファレンス「プロバイダ/データセンターのIPv4アドレス枯渇対策」で講演し,自身が取り組んだIPv6プロジェクトの成果を発表した。 Webコンテンツ・プロバイダとしての立場から,伊勢氏は2つのWebアプリケーションについてIPv4/v6デュアル・スタック化事例に取り組んだ。その1つは,2008年7月に立ち上げた,インターネット掲示板2ちゃんねる」のIPv6掲示板ipv6.2ch.net」である(AAAAレコードは2407:3000:6:175::12,Aレコードは1

    [ITproカンファレンス:IPv4枯渇対策]実践してわかったWebアプリをIPv6に対応させる7つの鉄則
  • はやいTCPサーバの書き方 - nyaxtのPC作業ログ

    cagra高速化にあたってのノウハウを一部公開してみます。また明日校正/更新します。つっこみ待ちです。 select(2)の代わりにepoll_wait(2), kqueue, /dev/epoll等を使う 他に山ほど解説ページがあるので略 大量のディスクリプタを処理するようなサーバの場合、多少効果があるかもしれません。しかし、クライアント数が少ない場合、劇的な性能の向上は見込めないとおもいます。クライアント数が多い場合は、1セッション1スレッドなモデルではOS側のタスクスイッチングのオーバーヘッドが効いてくることも多いです。クライアント数を増やすには複数のセッションを1スレッドで処理できるようにすると良いです。実装にあたっては、non-blocking ioを活用すると効果的です。 TCP_NODELAYを設定する Nagleアルゴリズムをオフにします。多少応答性が良くなります。 これっ

    はやいTCPサーバの書き方 - nyaxtのPC作業ログ
  • 1