並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 214件

新着順 人気順

TCPの検索結果81 - 120 件 / 214件

  • HttpClientをusingで囲わないでください - Qiita

    using (var client = new HttpClient()) { var response = await client.GetAsync(url); .... } これは間違いです。HttpClientオブジェクトは dispose してはいけません! Stackoverflowにも沢山この間違いがあります。 (追記: 正確に言うとdisposeしてはいけないわけではなく、生成と破壊を繰り返すのが誤りです) 正しい使い方はAPIの公式ドキュメントに書いてある通りです。 public class GoodController : ApiController { private static readonly HttpClient HttpClient; static GoodController() { HttpClient = new HttpClient(); } } 上

      HttpClientをusingで囲わないでください - Qiita
    • TCP/IPの後継技術になるか、常識を破る「QUIC」と「ICN」の衝撃

      アプリケーションの高度化やデータ通信量の増加に対応するため、TCP/IP(Transmission Control Protocol/Internet Protocol)の後継となる技術の検討も始まっている。その代表格が「QUIC」というプロトコルだ。TCPに取って代わる可能性があるとして注目されている。 QUICは、米グーグルが自社のWebサービスで大量のアクセスを高速に処理するために開発した独自プロトコルをベースにしている。同社はこのプロトコルを2015年にIETF(Internet Engineering Task Force)へ提出。その後、TLS(Transport Layer Security)の機能を取り込み、HTTP以外にも使えるようにするなどの変更を加えて標準化へと至った。 UDPでTCP相当の信頼性を確保 QUICの主な特徴は、「TCPと同等の再送制御や輻輳制御を備える

        TCP/IPの後継技術になるか、常識を破る「QUIC」と「ICN」の衝撃
      • DNSプロトコルのここ数年のトピック紹介

        こんにちは、滝澤です。 筆者の趣味として調べているDNSのプロトコルのここ数年のトピックについて紹介してみます。 ほぼ毎年、DNSに関連する新しいRFC(インターネットに関する技術仕様)が公開され、仕様が更新されたり、新しい仕様が追加されたりしています。 ここ数年のトピックについてまとめてみたいと思い立ち、この記事を書きました。 なお、この記事は2020年8月時点での情報となります。すべてを網羅しているわけではありません。 ちなみに、筆者は次のサイトを公開している人でもあります。 DNS RFCs ANYクエリーに対してRRsetをすべて返すわけではない 2019年1月に「RFC 8482 Providing Minimal-Sized Responses to DNS Queries That Have QTYPE=ANY」が公開されました。 このRFCでは、DNSレスポンダー(DNSレ

        • マスタリングTCP/IPを読んだか読んでないかで随分違う - orangeitems’s diary

          IT業界に飛び込むのなら基礎が大事という記憶 IT業界にいるのにITのことを知ろうとしない人って結構いるんです。基本的なことは3年ぐらい勉強すればわかってしまうと思うのですが、その3年をいつまで経っても避け続け四十代になる人はかなりの人数いるのではないかな・・と思うことがあります。 私は四十代になって、机に本を開いて勉強する、ということはないのですが、二十代のころ、特に大学を卒業して5年位はすごく本を読んでいた記憶があります。 AIなど数学を駆使する分野はともかく、IT業界に従事する一般的な知識であればそんなイメージで対応すればいいと思います。二十代にたくさん勉強して、あとは現場で応用を習得していくのが良いと思います。 基礎をきちんとおぼえたから現場でロジカルに考えられる人。何となく現場で方法を身に着けるも基礎がないのでなぜそうなっているのかを知識として蓄えられない人。その差を抱えたまま1

            マスタリングTCP/IPを読んだか読んでないかで随分違う - orangeitems’s diary
          • When TCP sockets refuse to die

            While working on our Spectrum server, we noticed something weird: the TCP sockets which we thought should have been closed were lingering around. We realized we don't really understand when TCP sockets are supposed to time out! In our code, we wanted to make sure we don't hold connections to dead hosts. In our early code we naively thought enabling TCP keepalives would be enough... but it isn't. I

              When TCP sockets refuse to die
            • Socket migration for SO_REUSEPORT (Part 1) - Kuniyuki Iwashima

              TCP ソケットと `SO_REUSEPORT` オプションに関する問題を解決するために Linux カーネル v5.14 から取り込まれる予定のパッチセットについて 2 回に分けて解説します。 - https://lore.kernel.org/bpf/20210612123224.12525-1-kuniyu@amazon.co.jp/ - https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=1f26622b791b6a1b346d1dfd9d04450e20af0f41 Part 1 では `SO_REUSEPORT` オプション、カーネルの挙動と問題点、パッチセットの効果について解説し、 Part 2 ではカーネルの実装と修正方法、追加した eBPF の機能について解説します。 ##

                Socket migration for SO_REUSEPORT (Part 1) - Kuniyuki Iwashima
              • Linux 5.6 から Multipath TCPが使える - ASnoKaze blog

                Linux 5.6から Multipath TCP(mptcp)が使えるようになった。複数インターフェースを使ってTCPコネクションをはり効率のよく通信を行う仕組みです。mptcp v0がRFC 6824で、mptcp v1がRFC 8684で標準化されています。 すでに、iOSでは利用が始まっています。 asnokaze.hatenablog.com 来月リリース予定である、Ubuntu 20.10 は Kernel 5.8 が入っており、mptcpが使えるのか試してみようと思いました。 有効になってることを確認 イメージを公式サイトから落としてきて起動します。 $ uname -a Linux y 5.8.0-19-generic #20-Ubuntu SMP Fri Sep 11 09:08:26 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux $ s

                  Linux 5.6 から Multipath TCPが使える - ASnoKaze blog
                • nginxでHTTP/3を使う方法 2023年5月版

                  ついさっき、ついにHTTP/3対応のブランチが本家のnginxにmergeされました。 このまま何事もなければ次のMainline versionである1.25.0がリリースされたタイミングで使えるようになるはずです。 検索するとnginxでHTTP/3を使う方法を解説しているサイトがいくつかヒットしますが、実はmergeするちょっと前くらいから非互換な変更をいくつも入れていたので、そのままだと動かないはずです。なので簡単に使い方を解説しておきます。 なお分かっていると思いますが、こちらの記事は記事執筆時点(2023/05/20)の内容です。 OpenSSLの代わりを選ぶ HTTP/3を使うには自分でbuildする必要があります。いずれpackageが配布されるだろうと思っている人がいるかもしれませんが、nginxのHTTP/3対応はBoringSSLのAPIで対応されています。OpenS

                    nginxでHTTP/3を使う方法 2023年5月版
                  • 図解!ネットワークの7層を実務に当てはめてみた - Qiita

                    ランサーズ Advent Calendar 2019 19日目担当の@manamin0521mです! サーバーサイド力を上げていくぞ💪という機運なのと、ネットワークがわからなくて詰んだことが立て続けにあったので、最近はマスタリングTCP/IP 入門編 第5版を読んでいます。そこで今回はこちらの本を読んで学んだネットワークについて紹介します。 ネットワークの勉強をする上で躓くのは以下の3点ではないでしょうか? ①知識がどう役立つのかよくわからない ②何に使われているのかわからない ③用語が難しくて覚えるのが大変 そこで今回の記事ではそれらのギャップを埋められればと思います。初学者の方対象です。 ネットワークの知識がなくて困ったとき ・AWSの構成図がいまいち読めない ・ポートとIPアドレスの違いがいまいち説明できない ・IPアドレスを固有のものだと思いこんでいて認識がズレる ・雰囲気でdo

                      図解!ネットワークの7層を実務に当てはめてみた - Qiita
                    • 第2回 輻輳制御アルゴリズムの3タイプ | gihyo.jp

                      様々な輻輳制御アルゴリズム 輻輳制御アルゴリズムとは、輻輳ウインドウサイズ(cwndと表されます)をいかに上手にコントロールするか、の方法です。より効率の良いデータ転送を実現するために、これまで非常に多くの輻輳制御アルゴリズムが研究されてきました。 これまでに開発された代表的な輻輳制御アルゴリズムとその関係性を、図1を用いて紹介します。 図1 様々な輻輳制御アルゴリズム 図中では、四角い囲みが各輻輳制御アルゴリズムの名称と提案年を表します。横軸は時間軸で、右に位置するものほど新しい輻輳制御アルゴリズムであることを表します。塗りつぶしの色はフィードバック形式の違いを表し、黄色がLoss-based、濃緑がDelay-based、そして水色がHybridを表します。Loss-basedはパケットロスを、Delay-basedは遅延を、Hybridはその両方を基準に、cwndを更新する輻輳制御ア

                        第2回 輻輳制御アルゴリズムの3タイプ | gihyo.jp
                      • 【TCP】linuxで取れるtcpのメトリクスを理解していく記事 - 地方エンジニアの学習日記

                        /proc/net/netstatを頑張って理解していく。ドキュメントないものをどうやって調べていくかはちょっと悩む... netstat グラフに出てくる項目 概要 TcpExtSyncookiesSent tcp.syncookies.sent 送信されるSYNクッキーの数 TcpExtSyncookiesRecv tcp.syncookies.recv TCPスタックが受信するSYNCookieの応答パケットの数 TcpExtSyncookiesFailed tcp.syncookies.failed SYNCookieからデコードされたMSSが無効 TcpExtEmbryonicRsts tcp.misc_errors.embryonic_rsts SYN_RECV状態の接続に対して受信された無効なパケット TcpExtPruneCalled tcp.misc_errors.pru

                          【TCP】linuxで取れるtcpのメトリクスを理解していく記事 - 地方エンジニアの学習日記
                        • IPv4と互換性のあるアドレス拡張プロトコルを考えてみたら、どういう感じになるんだろうか?|Rui Ueyama

                          前回の記事ではIPv6の普及がなぜなかなか進まないのかを説明した。一つの根本的な問題は、IPv6がIPv4と互換性がないことだった。では、IPv4と互換性のあるプロトコルは、一体どういうものがありえたのだろうか? この記事では、ASCIIをUTF-8に拡張したみたいに、IPv4と互換性を維持したままアドレスを64ビットに拡張したプロトコル(ここではIPv4+と呼ぶ)について考えてみたいと思う。そして、IPv4+ならば、IPv6のような長い移行期間を経ることなく、段階的にネットワークをアップグレードしていけることを示そうと思う。 なお、このIPv4+プロトコルは、筆者としてはそれなりに真面目に考えてみたものではあるけれど、単なる思考実験にすぎない。また、ここで提案するものがベストだと主張したいわけでもない。あくまで、現在の知識と経験を元に1995年くらいに戻って考え直せるとしたら、どういう世

                            IPv4と互換性のあるアドレス拡張プロトコルを考えてみたら、どういう感じになるんだろうか?|Rui Ueyama
                          • HTTP/2 と gRPC に対するよくある誤解。 - ねののお庭。

                            以前 .NET ラボで 「C# と HTTP/2 と gRPC」というタイトルで登壇しました。その時のスライドがこちらなのですが、ちらほら反応を頂きました。その結果、HTTP/2 や gRPC について勘違いしている人がちょこちょこいる事が分かったので、少し補足を書こうと思います。 blog.neno.dev 1. HTTP/2 で向上するのはスループットであって、1リクエストあたりの応答時間ではないよ。 HTTP/2 を使うからといって、1 リクエストあたりの応答時間が短くなるわけではないのです。 まず、1 HTTP リクエストあたりにかかる時間を、RTT とかいったりします。 1 RTT の内訳はだいたいこんな感じになります。 1 RTT = ネットワーク上で往路にかかる時間 + サーバの処理時間 + ネットワーク上で復路にかかる時間 HTTP/2 になったからといって、ネットワークを

                              HTTP/2 と gRPC に対するよくある誤解。 - ねののお庭。
                            • QUICをゆっくり解説(17):QUICビットとトランスポート・パラメータ | IIJ Engineers Blog

                              Haskellコミュニティでは、ネットワーク関連を担当。 4児の父であり、家庭では子供たちと、ジョギング、サッカー、スキー、釣り、クワガタ採集をして過ごす。 お久しぶりです。一家の引っ越しでバタバタしておりました。ようやく落ち着いてきましたので、「硬直化」をテーマとしてQUICに関して3つほど記事を書いてみようと思います。 硬直化 硬直化とは、中間装置が想定外の動作をすることによって、新しい機能の普及が困難になることです。硬直化の例としては、TCP Fast Openが完全に普及できないことが挙げられます。 TCPでは、コネクションを確立するために、いわゆる3WAYハンドシェイクが実行されます。通常は、クライアントがSYNパケットを送信し、サーバがSYN/ACKパケットを返し、その後クライアントがACKを返す際に初めてデータを送信できます。 もし最初のSYNパケットにデータを乗せることがで

                                QUICをゆっくり解説(17):QUICビットとトランスポート・パラメータ | IIJ Engineers Blog
                              • VPC ネットワーク内での長時間稼働 TCP 接続の実装 | Amazon Web Services

                                Amazon Web Services ブログ VPC ネットワーク内での長時間稼働 TCP 接続の実装 本投稿は Implementing long-running TCP Connections within VPC networking (記事公開日: 2022 年 11 月 28 日) を翻訳したものです。 多くのネットワークアプライアンスは、アイドル接続タイムアウトを定義して、非アクティブ期間が経過すると接続を終了します。たとえば、NAT Gateway、 Amazon Virtual Private Cloud (Amazon VPC) エンドポイント、Network Load Balancer (NLB) などのアプライアンスのアイドルタイムアウトは、現在 350 秒に固定されています。アイドルタイムアウトの期限が切れた後に送信されたパケットは、ターゲットに配信されません。

                                  VPC ネットワーク内での長時間稼働 TCP 接続の実装 | Amazon Web Services
                                • 第763回 RustDeskですいすい繋がるリモートデスクトップを実現する | gihyo.jp

                                  今回はオープンソースでマルチプラットフォームなリモートデスクトップソフトウェアであるRustDeskを紹介します。 RustDeskとは RustDeskはオープンソースでマルチプラットフォームなリモートデスクトップソフトウェアです。あけすけな表現をするとセルフホストできるTeamViewerやAnyDeskのようなものです。 使い勝手もおおむね同じで、今回構築する中継サーバーに接続することによりルーター等の設定を変更しなくてもすいすい繋がるリモートデスクトップ環境を構築できます。 サーバーはUbuntuやDebianとWindowsが想定されていますが、クライアントはUbuntu/Debian/Windows/macOS/Android/iOSなど、何にでも対応しています。ただし今回はUbuntuとWindowsしか取り上げません。 TeamViewerやAnyDeskを使用したことがあ

                                    第763回 RustDeskですいすい繋がるリモートデスクトップを実現する | gihyo.jp
                                  • HttpClientをusingで囲わないでください - Qiita

                                    using (var client = new HttpClient()) { var response = await client.GetAsync(url); .... } これは間違いです。HttpClientオブジェクトは dispose してはいけません! Stackoverflowにも沢山この間違いがあります。 (追記: 正確に言うとdisposeしてはいけないわけではなく、生成と破壊を繰り返すのが誤りです) 正しい使い方はAPIの公式ドキュメントに書いてある通りです。 public class GoodController : ApiController { private static readonly HttpClient HttpClient; static GoodController() { HttpClient = new HttpClient(); } } 上

                                      HttpClientをusingで囲わないでください - Qiita
                                    • FTP is 50 years old

                                      The 16th of April 1971 is not only the date when the Rolling Stone first released Brown Sugar, it is also marked with the publication of RFC 114 marking the birthday of FTP. Back in those days, the Vietnam war is at the forefront of the news, TCP/IP didn’t exist yet, Jimi Hendrix died 6 months ago, telnet was the new cool kid and some of the most influential rock n roll artists were about to relea

                                      • [Wireshark] sshdumpを使って手元のマシンからEC2インスタンスのパケットキャプチャーをしてみた | DevelopersIO

                                        tcpdumpではなくてWiresharkでパケットを確認したいな こんにちは、のんピ(@non____97)です。 皆さんはリモートのLinuxマシンをtcpdumpではなくて手元のマシンのWiresharkでパケットを確認したいなと思ったことはありますか? 私はあります。 tcpdumpで上手にフィルタリングをすれば良いのでしょうが、そうでなければ高速目grepすることとなり大変です。 そういった時は慣れ親しんだWiresharkが恋しくなるものです。 実はWiresharkでsshdumpを使えば、SSH越しにリモートコンピューターのパケットキャプチャーをすることはご存知でしょうか。 NAME sshdump - Provide interfaces to capture from a remote host through SSH using a remote capture bi

                                          [Wireshark] sshdumpを使って手元のマシンからEC2インスタンスのパケットキャプチャーをしてみた | DevelopersIO
                                        • [CNDT2020]Linux Observability with BPF Performance Tools

                                          Admission Webhookで快適なSecret管理 / Berglas Secret Admission Webhook

                                            [CNDT2020]Linux Observability with BPF Performance Tools
                                          • え! QUIC無効化するの? HTTP over QUIC or TCPの接続選択を考える

                                            図1: QUICの無効化は待ってくださいQUICを無効化?!“Googleが遅く感じるので、QUICを無効化する” そのようなTIPSが散見されます。数年前から見ていましたが、QUICがトレンドになったのと同時に、再び目立ち始めたと感じています。IPv6が普及し始めた時期もそうでしたが、新しいプロトコルの出現時には、決まって現れる文言です。 問題に直面する利用者にとっては切実であり、無効化は間違った解決手段とは言いません。しかしエンジニアならば無効化する前に、原因を探求しなければなりません。 HTTP3/QUIC と HTTP2/TCP どちらが優先?QUICの無効化とは、TCPだけを利用する選択と言えます。はじめにQUIC, TCPの両者が使えるとき、どのように使い分けるのか見ていきます。 ある、HTTPSスキームのURL https://www.example.com/ があったとき、

                                              え! QUIC無効化するの? HTTP over QUIC or TCPの接続選択を考える
                                            • Linux以外ではDockerでIPv6が扱えないので簡易なTCP Reverse Proxy Serverを書いた - 時計を壊せ

                                              まずは公式ドキュメントをご覧ください。 docs.docker.com IPv6 is only supported on Docker daemons running on Linux hosts. 残念! Docker Desktop for Macなどでローカル開発をしているときに、ローカルで立ち上げたプロセスからDocker内にあるコンテナに通信したいことは割りとよくあるユースケースだと思う。 こういうときは、基本的には宛先をIPv4のLoopback Addressである127.0.0.1に向けてあげて、 IPv6を使わないようにしてあげるとよい。 localhostを使ってしまうと、名前解決でIPv6のLoopback Addressに名前解決されるケースがあり、そうなればIPv6に対して接続しようとしてしかしIPv4でしかlisten(2)されていないのでコケる。 しかし、世

                                                Linux以外ではDockerでIPv6が扱えないので簡易なTCP Reverse Proxy Serverを書いた - 時計を壊せ
                                              • Nature Remo Local API でローカルからリモコン信号を送る | yuu26-memo

                                                Nature Remo には、ローカル用の API が用意されています。 サーバ障害時やインターネット接続障害時でも、Local API 経由であれば利用可能です。 ※以前の記事で触れた Cloud API とは別物 公式サイトの Swagger に詳細が記載されています。 https://local-swagger.nature.global/ Remo で登録済みのリモコン信号はサーバ側に保存されているらしく、今回使用するローカルから呼び出すことはできません。個別に赤外線信号を指定する必要があります。 IP アドレスを調べるRemo の持つ IP が分かっていればスキップ可能。(ルータの管理画面で調べるのが楽) まずはじめに、Remo が利用しているホスト名を確認。dns-sd -B _remo._tcp で検索できます。 $ dns-sd -B _remo._tcp Browsing

                                                  Nature Remo Local API でローカルからリモコン信号を送る | yuu26-memo
                                                • インターンレポート: RootlessコンテナのTCP/IP高速化

                                                  はじめまして、インターン生の松本直樹と申します。 この記事では、私がNTT研究所におけるインターン「コンテナランタイムの実装と評価」のインターン期間中に取り組んだ「bypass4netns」について紹介させていただきます。 自己紹介私は京都大学 情報学研究科に所属し、 普段は次世代型ホームネットワークと称してホームネットワークとSDNの融合や計算処理オフロードに関する研究に取り組んでいます。 コンテナ技術やその周辺のネットワーク技術に関しては普段から興味があったものの、 時間をかけて取り組む機会がありませんでした。 その折に、今回のインターンの募集を見つけ、実装を中心に触れることができる良い機会だと思い応募させていただきました。 インターン期間中はRootlessコンテナとネットワーク周りにどっぷりと浸ることができ、 非常に貴重な体験ができました。 はじめに: Rootless コンテナに

                                                    インターンレポート: RootlessコンテナのTCP/IP高速化
                                                  • ソニーCSLとJAXA、成層圏や低軌道でもTCP/IP通信を可能にする技術

                                                      ソニーCSLとJAXA、成層圏や低軌道でもTCP/IP通信を可能にする技術
                                                    • Googleが設計した次世代通信プロトコル「QUIC」とは?

                                                      プライム・ストラテジー「KUSANAGI」の開発チームの石川です。 「KUSANAGI」はWordPressをはじめとするCMSを高速に動作させる世界最速クラスの仮想マシンです。わたしたちは「KUSANAGI」を開発して皆様にご利用いただくほか、お客様のウェブサイトを「KUSANAGI」で運用しています。 この連載では、「KUSANAGI」の開発やお客様とのお話の中で感じた課題や実際の運用の中で得た知見などをお伝えしています。 今回は次世代のHTTPとも呼ばれる「HTTP/3」の裏側で使われている「QUIC(クイック)」についてお話ししたいと思います。 Googleが通信パフォーマンス改善について追求した「QUIC」 QUICはもともとGoogleによって設計されたトランスポート層の通信プロトコルです。 Googleがプロトコルを開発することを意外に思う人がいるかもしれませんが、Googl

                                                        Googleが設計した次世代通信プロトコル「QUIC」とは?
                                                      • ネットワークサービスの依存発見に向いた
TCP/UDP通信の低負荷なトレース手法 / Low Overhead TCP-UDP Tracing in Kernel

                                                        第8回WebSystemArchitecture研究会 https://wsa.connpass.com/event/207143/

                                                          ネットワークサービスの依存発見に向いた
TCP/UDP通信の低負荷なトレース手法 / Low Overhead TCP-UDP Tracing in Kernel
                                                        • QUICやHTTP/3で利用を避けるべき送信元ポートの利用状況 | GREE Engineering

                                                          どうも、インフラの後藤です。夏休みの自由研究として、HTTP/3について遊んでみたのでよろしくおねがいします。 はじめに HTTP/3はRFC目前となっており、すでに多くのブラウザがサポートし、ミドルウェアも実装が進められています。また、GCPではCloud CDN やHTTPS Load Balancingですでに利用することが出来ます。 HTTP/3は、トランスポートプロトコルにUDPで動作するQUICを利用しています。このQUICは様々な効率化の仕組みが盛り込まれていて、結果としてHTTPプロトコルの高速化が実現されています。 一方で、少ない環境ではあるものの、QUICが利用できないネットワークがあることも知られています。実際に使用する場合に問題になることはなく、多くの場合はHTTP/2にフォールバックされアクセスが行われます。ですが、国内での実情は調査の余地があると思われます。 今

                                                            QUICやHTTP/3で利用を避けるべき送信元ポートの利用状況 | GREE Engineering
                                                          • QUIC vs TCP: Which is Better? | Fastly

                                                            QUIC matches TCP's efficiency, says our research. | FastlyWe’ve shared a lot about how much we love QUIC (and why we’re building our own implementation called quicly). It promises latency reduction, improved throughput, resilience to client mobility, and increased privacy and security. Excitingly, the QUIC working group at the IETF is now on the cusp of getting the first version of QUIC wrapped up

                                                              QUIC vs TCP: Which is Better? | Fastly
                                                            • RFC 9293: Transmission Control Protocol (TCP)

                                                              Stream: Internet Engineering Task Force (IETF) STD: 7 RFC: 9293 Obsoletes: 793, 879, 2873, 6093, 6429, 6528, 6691 Updates: 1011, 1122, 5961 Category: Standards Track Published: August 2022 ISSN: 2070-1721 Author: RFC 9293 Transmission Control Protocol (TCP) Abstract This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protoco

                                                              • NPNS における Erlang/OTP

                                                                Erlang & Elixir Fest 2019 で任天堂さんの発表について、懇親会で話せる範囲でお教えていただいたことなどを交えて、Erlang/OTP を利用してパッケージ製品を開発しているプログラマー視点で見ていきます。残念ながら運用については未経験のため、その辺りは触れません。 また自分が XMPP というプロトコルはなんとなく知っているレベルということもあり、XMPP 自体には踏み込みません。 XMPP/ejabberd という選択当たり前ですがプッシュ通知を送るには TCP/IP の接続を維持するという方針になります。その上、将来的には 1 億を目指して行くわけです。 TCP の常時接続が経験ない中で 1 億同時接続を目指す際の技術選定で、自作プロトコルに行かず、 枯れている XMPP という選択をしたのは本当に素晴らしいと思います。 また、そんな中で実績がある ejabbe

                                                                • Sockets In Your Shell

                                                                  Something I learned recently and I thought was amazing - you can create sockets straight from your shell! Well, assuming you use bash or zsh - from some surface level digging, I couldn’t find anything for fish. Here’s how it works: bash Bash supports tcp and udp connections out of the box, and does so with an imaginary device in /dev. Enter And you’ll create a connection to HOST:PORT. $PROTO can b

                                                                  • Network ExtensionでiOSデバイス上で動くパケットキャプチャを作る

                                                                    Creating a packet capture app without a remote VPN server with a Network Extension framework. Network Extensionおよびパケットキャプチャの概要 VPNの仕組み Network Extensionを使って簡易VPNクライアントを実装する パケットの構造と解析 パケットキャプチャを利用した実用的なツールの作成

                                                                      Network ExtensionでiOSデバイス上で動くパケットキャプチャを作る
                                                                    • NICからの割り込みを適切なCPUに振り分けるための、IPヘッダオプション - ASnoKaze blog

                                                                      NICからの割り込みを適切なCPUに振り分けられるようなHintをIPヘッダオプションとして定義する「Multiple Core Performance Hint Option」という提案が提出されています。(特許としても申請中とのこと) ざっくり眺めて見ようかと思います。ここらへん詳しいわけではないので、間違いがあればご指摘ください。 背景 10Gbpsなどのトラフィックを処理する場合、NICからの割り込みを一つのCPUコアで処理しきれないことがあります。 NICからの割り込みを複数のCPUコアで分散する仕組みとして、Linuxでは「Receive Side Scaling (RSS)」、「Receive Packet Steering (RPS)」、「Receive Flow Steering (RFS)」などの仕組みがあります。 このとき、同じ通信フローの処理は同じコアで処理するのが

                                                                        NICからの割り込みを適切なCPUに振り分けるための、IPヘッダオプション - ASnoKaze blog
                                                                      • TCP/QUIC相互変換のポートフォワードツールを書いた - ASnoKaze blog

                                                                        TCP/QUICのポートフォワードツールを書いた。 概要 IETFで標準化が進められているトランスポートプロトコルQUIC。 UDPを利用しており、エンドポイントのIPアドレスが変わってもコネクションが切れなかったり、より良い再送制御が行えたりと長所は多くある。しかし、QUICをサポートしているアプリケーションプロトコル、実装が現状多くはない。 QUICの恩恵に預かるために、TCPとQUICを相互変換するポートフォワードツール 「t2q2t」 を書いた。(実態としてはただのProxy) github.com ただし、ハンドシェイク回数が増えるのでコネクション確立時のオーバーヘッドは高い 利用例 ユースケースとしては例えば: クライアントとサーバそれぞれでt2q2tを実行する。 クライアント: TCPで0.0.0.0:2022でリッスンし、QUICで192.168.0.1:22に転送する サ

                                                                          TCP/QUIC相互変換のポートフォワードツールを書いた - ASnoKaze blog
                                                                        • TCPに取って代わるか?グーグル発の新標準プロトコル「QUIC」とは

                                                                          インターネットの標準として使われてきたプロトコルが置き換わるかもしれない。インターネットの通信プロトコルなどの標準化を手掛けるIETF(Internet Engineering Task Force)は2021年5月27日(米国時間)、通信プロトコル「QUIC(Quick UDP Internet Connections)」をRFC 9000として勧告した。これが長らく使われてきたTCP(Transmission Control Protocol)に取って代わる可能性があるとして関心を集めている。 IETFが標準化したQUICは、2013年に米Google(グーグル)が発表した、大量のアクセスを高速に処理するためのプロトコル「QUIC」を発展させたものだ。グーグルのQUICはWeb専用で、UDP(User Datagram Protocol)を利用する通信プロトコルであり、独自の暗号化手法

                                                                            TCPに取って代わるか?グーグル発の新標準プロトコル「QUIC」とは
                                                                          • GitHub - TimeToogo/ff-proxy: A UDP to TCP proxy server for sending HTTP requests with zero roundtrips

                                                                            FF is a proxy server which enables you to fire and forget HTTP requests. That is, sending a HTTP request to a remote server, without waiting for a response or even the network latency required to establish a connection to that server. Additionally, FF provides the ability to protect sensitive payloads by encrypting the data in transit between both the client and upstream servers. Disclaimer: This

                                                                              GitHub - TimeToogo/ff-proxy: A UDP to TCP proxy server for sending HTTP requests with zero roundtrips
                                                                            • ブックオフで本が足りない…なぜ在庫不足に陥ったのか?“古本”需要の急増に追いつかず

                                                                              ブックオフの店舗(「Wikipedia」より) 大手古本チェーン「ブックオフ」を全国に展開しているブックオフコーポレーションが8月27日、書籍の在庫不足を迎えていることを発表し、本の売却を懇願する「【皆さまへ】ブックオフから本気のお願いです」と題した動画をユーチューブ上で公開した。「『ブックオフなのに本ねぇ~じゃん!』とCMで言っていたら、本当に本が足りなくなりそうです」という悲痛な叫びから始まる、インパクト大の同動画は世間の注目を集めた。 8月末から9月13日まで買取強化キャンペーンの一環として、文庫本を売却してくれた客に抽選で図書カードなどをプレゼントすると発表したブックオフだが、なぜ在庫不足という事態に直面していたのだろうか。法政大学大学院教授の真壁昭夫氏に話を聞いた。 低価格、立ち読み可能、清潔感――ブックオフの従来の戦略 初めに、ブックオフはどのようにして、大手チェーン店として展

                                                                                ブックオフで本が足りない…なぜ在庫不足に陥ったのか?“古本”需要の急増に追いつかず
                                                                              • UNIX Domain Socket の SO_SNDBUF, SO_RCVBUF についての覚書 - hibomaの日記

                                                                                macOS と Linux の UNIX Domain Socket の SO_SNDBUF, SO_RCVBUF について調べていた。 経緯 会社で @kurotaky のトラブルシューティングの相談を受けた際の覚書。 下記のように UNIX Domain Socket を挟んで IPC しているコードがあり、macOS と Linux で挙動が違っているのを調べていた。Linux では Go Ethereum が送ってくるデータを全部読み出せるが、macOS だと一部 ( 8192 バイト 注1 ) しか読み出せないとのことだった。 Ruby のコード <----- UNIX Domain Socket -----> Go Ethereum 色々調べてみたところ、macOS / Linux で UNIX Domain Socket のデフォルトの SO_SNDBUF, SO_RCVBU

                                                                                  UNIX Domain Socket の SO_SNDBUF, SO_RCVBUF についての覚書 - hibomaの日記
                                                                                • MySQL 8.0.22 DNS SRV レコードサポート - tmtms のメモ

                                                                                  MySQL 8.0.22 の新機能で DNS SRV レコードのサポートというのがあったので試してみた。 https://dev.mysql.com/doc/refman/8.0/en/connecting-using-dns-srv.html MySQLサーバー3台 (a.example.com, b.example.com, c.example.com)とそれに接続するためのクライアントの計4台を docker-compose で作成する。 Dockerfile FROM ubuntu RUN apt update RUN apt install -y mysql-client libmysqlclient-dev gcc unbound bind9-dnsutils RUN rm -f /etc/unbound/unbound.conf.d/root-auto-trust-ancho

                                                                                    MySQL 8.0.22 DNS SRV レコードサポート - tmtms のメモ