2017年10月27日、モノビットエンジン勉強会inサイバーコネクトツーにて、中嶋謙互が講演しました「ネットワークゲームにおける TCPとUDPの使い分け」のスライドになります。ネットワークゲームを製作する際にご参考頂けますと幸いです。 登壇者: 株式会社モノビット 取締役 CTO 中嶋謙互Read less
2022年9月9日、「スプラトゥーン3」が発売されました。とても楽しみにしていたのですぐに買いました。発売から1月半ほどたってこの文章を書いていますが、いろいろなステージで様々なブキを使ってインクを塗り合い楽しくプレーしています。ちなみに今のウデマエはS+30になったところです。 この特集は、人気のスプラトゥーン3を通して、最新の通信技術の基本を学んでしまおうというものです。前半の今回はスプラトゥーン3を含むオンラインゲームの通信技術を解説します。後半となる次回は、実際にスプラトゥーン3のパケットをキャプチャーして、それらの通信技術が実際にどのように使われるのかを見ていきます。 なお記載内容については、筆者や編集部独自の考察や推測によるものであり、任天堂の公式見解ではないことを明記しておきます。 オンラインゲームを実現する通信技術、UDPとは 一般的なコンピューターが通信を行う主な方法にT
QUIC(Quick UDP Internet Connections)プロトコルは、TCPではなくUDPをベースとして開発された、全く新しいWeb向けのプロトコルです。 (冗談で) TCP/2 と呼ぶ人までいます。 私がQUICについて知ったのは数週間前のことです。 SysCast Podcastのcurlとlibcurlについてのエピソード を聞いていた時でした。 QUICプロトコルの本当に面白い点は、UDPへの移行というところだと思います。 現在、Webの伝送プロトコルは、信頼性を確保するため、TCP上に構築されています。このTCP接続を開始するためには、 3wayハンドシェイク が行われています。つまりこれは、接続を開始するたびにラウンドトリップ (ネットワークパケットの往復) が追加されるということであり、新たな接続先に対し大幅な遅延を生じさせているのです。 (出典: UDPを介
Gemini 1.5 モデル をお試しください。Vertex AI からアクセスできる、Google のもっとも先進的なマルチモーダル モデルです。 試す ※この投稿は米国時間 2024 年 6 月 22 日に、Google Cloud blog に投稿されたものの抄訳です。 Google Cloud ネットワーキング チームは長年にわたり、お客様のネットワークの構築、修正、強化の支援に深く携わってきました。その間に、ネットワークのパフォーマンスと効率を最大限に高める重要なパターンやベスト プラクティスを発見しました。この豊富な知見は、ただの理論的なリソースではありません。Google Cloud、クロスクラウド、オンプレミス、その他のクラウド プロバイダなどデプロイ先を問わず、お客様のビジネス目標達成を支援するよう設計された実用的なツールキットです。Google はこの専門知識を共有する
この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2021年8月) 古い情報を更新する必要があります。(2021年11月) 出典検索?: "TCPやUDPにおけるポート番号の一覧" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL 本項ではTCPやUDPにおけるポート番号の一覧を示す。 コンピュータネットワークにおいて、インターネット・プロトコル・スイートのトランスポート層にあたるTransmission Control Protocol (TCP) やUser Datagram Protocol (UDP) では、他のプロトコル同様、ホスト間通信のエンドポイントを指定する際に数字の識別子が用い
2020/01/14: 実際に動くのを確認しました asnokaze.hatenablog.com (2020/09/17 注釈: Raw SocketsからDirect Socketsに名称が変更されました) ブラウザでTCP, DUPソケットを操作可能にする「Direct Sockets API」という仕様がW3CのWICGで議論されている。 また、blink-devでも「Intent to Prototype: Raw Sockets API」とプロトタイプの議論が行われている。 多くの方がセキュリティ上の懸念を抱くと思うが、ドキュメントでも慎重に検討すると書かれている。GithubでIssueを立てることも可能なので、思うことがある方は、まだまだ議論は始まったばかりでもあるので是非フィードバックされると良いと思う。(割と普通に聞いてもらえます) なお、Raw Socketsという名
F5 Sites DevCentral Connect & learn in our hosted community F5 Labs The latest threat intel and research to help protect your apps MyF5 Your key to everything F5, including support, registration keys, and subscriptions Partner Central Research and support for partners LearnF5 Guidance, insights, and how to use F5 products Contact F5 Contact F5 Sales Talk to an F5 sales representative Contact F5 Su
ここは、コンピュータでイラストやアニメのキャラクターを識別するプロジェクトのページです。 僕がひとり、趣味で行っています。 目標は、絵を描く人に関係なく、より一般化されたキャラクターというものについて正しく識別できるライブラリを開発し、画像の自動分類や検索に役立てることです。 更新履歴 AnimeFaceを最近の環境で動くようにしてGitHubに置きました(Perl拡張なし) (2016 2/18) Imager::AnimeFaceのビルドスクリプトを修正. Imager-AnimeFace-1.02 (2012 7/30) OpenCV用のアニメ顔分類器にLBPの検出器を追加 (2011 7/18) Ruby拡張ライブラリへのリンク追加 (2010 8/16) 関連リンクを追加,微妙に様々なコメントを修正 (2010 3/30) 昔作ったもの(OpenCV用のアニメ顔分類器,SC),関
目次 はじめに UDPロードバランサ ラウンドロビン方式 ハッシュ方式 ハッシュの再計算 コネクションマイグレーションが出来ない その他の懸念事項 NLBを用いたハッシュの再計算の実験 QUICの負荷分散について はじめに HTTP/3はQUICというトランスポートプロトコルを利用しています。QUICはUDPを利用していますが、QUIC自体はステートフルなプロトコルです。 ステートフルなQUICを、QUICを解釈しないUDPロードバランサでバランシングしようとするにはいくつかの注意問題点があります。今回は簡単に説明し、NLBでも実験をしてみました。 QUICの用語などは以前書いた記事を参照 asnokaze.hatenablog.com UDPロードバランサ QUICはステートフルですので、おなじQUICコネクションのUDPパケットは同じサーバに割り振ってやる必要があります ロードバランサ
TCPソケット サーバータイプとクライアントタイプの両方のアプリケーションを作らないといけないなら、サーバータイプから作るべきだろう。 (クライアントタイプだけ先に作っても動かせないから。まぁサーバータイプだけ動かしても、待ってるだけであまり意味無いけど(苦笑)) でも仕組みはクライアントタイプの方が簡単。 TCPを使う場合は、通信の最初にコネクションの確立を行う必要がある。 サーバーでlisten・accept、クライアントでconnectが成功すればコネクションが確立したことになる。 どのポート番号を使うかについては、サーバー側はアプリケーションの作成者が決める必要がある。[/2007-06-16] クライアント側のポート番号は、ソケットライブラリがそのマシンで使っていない番号を自動的に割り振ってくれるので、気にしなくてよい。 IANAの基準では、1~1023は「よく知られたポート(w
マイクロソフトは現在最新の「Windows Server 2019」の次のメジャーバージョンアップとなる予定の「Windows Server vNext」(コード名)の新ビルド「Windows Server vNext Preview Build 20201」(以下Build 20201)をリリースしました。 Build 20201ではいくつかの新機能が搭載されています。 おもなものとして、HTTP/3のベースとなるQUICプロトコルが搭載されました。QUICプロトコルは、HTTPをより高速に実装することを目的として開発された、UDPをベースにした新たなプロトコルです。 マイクロソフトはQUICの実装として、今年2020年4月にオープンソースとして公開した「MsQuic」を採用しています。 発表によると、QUICはHTTP/3だけでなくファイル転送プロトコルであるSMBにも使われる予定です
Want to help support this blog? Try out Oh Dear, the best all-in-one monitoring tool for your entire website, co-founded by me (the guy that wrote this blogpost). Start with a 10-day trial, no strings attached. We offer uptime monitoring, SSL checks, broken links checking, performance & cronjob monitoring, branded status pages & so much more. Try us out today! The QUIC protocol (Quick UDP Internet
本稿では、初めて実際に独自プロトコルのDissectorを作る人が最初にぶつかるであろう壁を乗り越える方法を紹介します。 Dissectorって何?という人は、先に↓こちらを読んでください。 WiresharkのDissectorを使った独自プロトコル解析をやさしく解説してみました - DARK MATTER 本稿では、基本的なDissectorの作り方と、Dissectorを活用したパケット解析方法を紹介します。WiresharkのDissectorをご存知でしょうか?DissectorはWireshar ... できるようになること 複数のパケットに分割されたパケットのDissectorの作成 TCPのパケット分割について(いちおう書いておきます) TCPはストリーム型の通信であり、送信サイズや通信環境によりTCPの仕組みでパケットが分割されて送信される場合があります。このため一般に公
We are proud to announce the addition of an exciting new capability to NGINX Open Source and our application delivery platform, NGINX Plus – UDP load balancing. The new capability builds on our existing TCP and HTTP capabilities, making NGINX a powerful, easy-to-use, and consistent frontend for an even wider range of Internet applications and devices. We’re excited to extend the load balancing cap
前回と前々回の記事では、Go言語によるTCPソケットの通信例を紹介してきました。 今回は、ネットワークの解説でTCPと一緒に紹介されることが多いUDPのソケットをGo言語で触ってみます。 今回の記事の概要部分は佐藤貴彦氏、若山史郎氏、小泉守義氏にアドバイスをいろいろもらいました。 ありがとうございます。 UDPが使われる場面は昔と今で変わってきている UDPはTCPと同じトランスポート層プロトコルですが、TCPと違ってコネクションレスであり、誰とつながっているかは管理しません。 プロトコルとしてデータロスの検知をすることも、通信速度の制限をすることもなく、一方的にデータを送りつけるのに使われます。 その際にはパケットの到着順序も管理しません。 TCPとくらべて機能が少なくシンプルですが、そのかわりに複数のコンピュータに同時にメッセージを送ることが可能なマルチキャストとブロードキャストをサポ
TCPとUDPはOSIのレイヤ4(トランスポートプロトコル)であり、よく以下のように説明されていますよね。 ●TCP ・信頼性が高い ・コネクション型プロトコルである ・ウインドウ制御、再送制御、輻輳(ふくそう)制御を行う ●UDP ・コネクションレス型プロトコル ・信頼性を確保する仕組みがない ・処理が簡単で遅延が少ない しかし、これらの説明には重要な視点が欠けていると思います。 データを「ストリーム」として扱うTCPと、「データグラム」を処理するUDPという考え方です。 トランスポートプロトコルとは? まずは、そもそもTCPやUDPなどのトランスポートプログラムがなぜ必要なのかを考えてみましょう。 ふつう、私たちが利用しているPCやサーバーでは、同じコンピュータの上で複数のアプリケーションが動作していますよね。アウトルックでメールを書きながら、ブラウザでホームページを見たりすることがで
Ethr is a cross platform network performance measurement tool written in golang. The goal of this project is to provide a native tool for comprehensive network performance measurements of bandwidth, connections/s, packets/s, latency, loss & jitter, across multiple protocols such as TCP, UDP, HTTP, HTTPS, and across multiple platforms such as Windows, Linux and other Unix systems. Ethr takes inspir
お仕事でハマった事例があったので、メモを残しておく。 問題詳細 解析 原因 解決方法 メモ 問題詳細 以下のような事象が発生した。 負荷分散サーバ(LB)上で動作するアプリケーション(AP1)は受信したUDPパケットを負荷分散先(S1)に送信する。だが、 S1上で動作するアプリケーション(AP2)はそのパケットを受け取れなかった。 S1上でパケットキャプチャした結果、LBから送信されたパケットはS1上で受信できるのは確認できた。しかし、AP2ではそれを受け取れない。 一方、AP1で中継させずにLBから直接UDPパケットをS1に対して送信すると、AP2はこれを受け取れる。 図にすると以下のような感じになる。 解析 S1上には複数のIFが存在し、そのうちの一つのIF(bond3)に設定されたIPアドレスに向けてAP1はパケットを送信している。一方AP2は、S1上のすべてのIFに対してUDPポー
Apple ソフトウェア製品で使われている TCP および UDP ポート macOS、iCloud などの Apple 製品で使われる TCP ポートと UDP ポートについて説明します。これらのポートの多くは、業界標準の「ウェルノウン (well known)」ポートです。 Apple 製品で使われているポート 以下の一覧表はすべてのポートを網羅したものではなく、一般的な使用例を添えたクイックリファレンスガイドとなっています。内容は定期的に更新され、記事公開時点の最新情報が反映されます。エンタープライズネットワークに特有のホストとポートについては、エンタープライズネットワークで Apple 製品を使う方法をこちらの記事でご確認ください。 ソフトウェアによっては別のポートやサービスが使われる場合もあるため、ファイアウォールやその類のアクセス制御方式の設定方法を判断する際は、ポート監視ソフ
Growlに、LANの外のマシンから通知リクエストを投げたい。 Growlは、リモートから通知リクエストを受ける機能がある。 UDPの9887番ポートを使用 が、Growlが動いているマシンと通知リクエストを行うマシンは、それぞれ異なるLANに属していて、直接通信できない。 そんなときお手軽便利なのは、SSHのポートフォワード。これでずるっとトンネルを開通すればいい。 が、TCPのパケットしかポートフォワードできない。 stoneにはUDPとTCPとを相互変換する機能があるらしい。 仙石浩明の日記: stone に UDP ⇔ TCP 相互変換機能を実装 少なくともstone-2.3dではこの機能が実装されている。(stoneのサイトからダウンロード可能) というわけで、 発信側のマシン Net::Growlとかで発信 stoneでUDPをTCP化 SSHのポートフォワード 受信側のマシン
昨日(2018/02/27)に、JPCERTからmemcached のアクセス制御に関する注意喚起が出ていました。 ということでmemcachedのポート(11211/tcp, 11211/udp)が開放されていないかの確認方法についてメモしておきます。 memcached開放により起きる問題 はじめに、memcachedのポートを外部から接続可能にしてしまうと何が問題か整理しましょう。 内部情報の漏洩 1つはすぐに思い付くことですが、内部情報の漏洩です。memcachedは認証の無いプロトコルであるため(正確にはあるけど、誰も(?)使ってない)、外部から接続できれば即キャッシュ上の値を取得することができます。 たとえばphp.iniで以下のように設定していれば、 session.save_handler = memcached session.save_path = "localhost
先に原因を書いておくと、 チェックサムが 0x0000 のUDPパケットが戻ってくると、自分の環境では「どこか」で再計算された誤ったチェックサムが付与され、チェックサムが合わないのでユーザーランドに届く前に破棄されていました。 以下、詳しく。 ことの始まりは、自宅でtwitchでSplatoon(先日ようやくSになりました!)の動画配信を見ようとしたのですがアクセスできないのに気づいたことでした。 ブラウザに表示されるエラーメッセージからして名前が引けないようなので、digで試してみたら引けませんでした。(10.6.25.2は宅内のキャッシュサーバー(djbdns)) $ dig www.twitch.tv @10.6.25.2 (しばらくだんまり) ; <<>> DiG 9.9.5-3ubuntu0.7-Ubuntu <<>> www.twitch.tv @10.6.25.2 ;; gl
Tsunami UDP Protocol: A fast user-space file transfer protocol that uses TCP control and UDP data for transfer over very high speed long distance networks (≥ 1 Gbps and even 10 GE), designed to provide more throughput than possible with TCP over the same networks. The project is based on original Indiana University 2002 Tsunami source code, but has been significantly improved and extended. As such
HTTP/3のお話 IETFやGoogleは、Webの世界を発展させるためにはHTTP/HTTPSをもっと最適化させなければいけないと思っています。これは正しいです。 ただ、今考えられているHTTP over QUIC、これをHTTP/3と呼ぶ、と決まったらしいのですが。 gigazine.net インターネットのネットワークプロトコルを標準化する業界団体のInternet Engineering Task Force(IETF)が、これまで「HTTP-over-QUIC(hq)」と呼ばれていたプロトコルを「HTTP/3」という名称に変更すると発表しました。 技術的な説明は下記が詳しいです。 asnokaze.hatenablog.com asnokaze.hatenablog.com で、私なぞは基本サーバー屋だったのでネットワークのこのあたりのプロトコルスタックの話は読んでもなかなか頭
第2回で紹介したIP Anycastでは、パケットの送り先を決める仕組み(経路制御)を応用する。宛先IPアドレスに至る複数の経路がある際に、「ネットワーク的に近いかどうか」など、様々な要素を勘案して最適な経路を選ぶのだ。 広域ネットワークにおけるIP Anycastでは、経路の選択にBGPを利用する。BGPは大規模なネットワーク同士のやり取りで使うルーティングプロトコルで、ASという単位で経路制御を実施する。プロバイダーなどの大規模ネットワークが、インターネット上で一意のAS番号を割り当てられているのだ。AS間では各種のパラメータを交換し、「受け取ったパケットを、次にどのAS番号のネットワークに送り出したらよいか」をまとめた経路表を作成する。自らが持つ経路情報を隣接ASに伝播する際は、自分のAS番号を追加して伝える(図1上の(1)~(3))。すると宛先のIPアドレスごとに、経由するAS番号
①、②のポート番号はサービスを提供するサーバ側で主に使用されるのに対して、③はクライアント側で主に使用されるポート番号。 ①ウェルノウンポート番号はサーバのアプリケーションに割り当てられます。②登録済みポート番号は独自に 作成されたアプリケーションに割り当てられます。③のダイナミックポート番号はサーバとのプロセスに応じ クライアントのアプリケーションに動的に割り当てられます。②はクライアントに割り当てる時もあります。 TCP/UDPのポート番号について詳しく知りたい方、TCP/IPをはじめから分かりやすく知りたい方はマスタリングTCP/IPがお勧めです。 マスタリングTCP/IPはネットワークエンジニア、サーバエンジニアなど全てのIT技術者が大絶賛しているTCP/IP参考書のバイブル本。
Secure Socket Funneling (SSF) is a network tool and toolkit. It provides simple and efficient ways to forward data from multiple sockets (TCP or UDP) through a single secure TLS link to a remote computer. The initial aim of SSF was to provide an easy way for users and developers to multiplex and demultiplex various network data flows. It was designed to: be cross platform (Windows XP-10, Linux, OS
AWS News Blog New – UDP Load Balancing for Network Load Balancer The Network Load Balancer is designed to handle tens of millions of requests per second while maintaining high throughput at ultra low latency, with no effort on your part (read my post, New Network Load Balancer – Effortless Scaling to Millions of Requests per Second to learn more). In response to customer requests, we have added se
HTTP/3とは何か?−UDPベースの高速新プロトコルの概要 TL;DR 2018年11月、バンコクでIETF(Internet Engineering Task Force)が開催され、新しいインターネットドラフトが採択されました。また、HTTP/2の後継プロトコル、QUICトランスポートプロトコルは「HTTP/3」に名称変更されました。 HTTP/3はUDP(User Datagram Protocol)を使用する通信方式で、GoogleやFacebookなどの有名インターネット企業ですでに採用されています。Chromeを使ってGoogleのサービスに接続しているユーザーは、恐らく知らないうちにQUICを使用しているはずです。 新バージョンのHTTPプロトコルは、ベアメタルで低レベルのUDPプロトコルの恩恵を受けつつ、旧バージョンのTCP層にあった多くの新機能を定義します。つまり、既存
macOS、iCloud などの Apple 製品で使われる TCP ポートと UDP ポートについて説明します。これらのポートの多くは、業界標準の「ウェルノウン (well known)」ポートです。 以下の一覧表はすべてのポートを網羅したものではなく、一般的な使用例を添えたクイックリファレンスガイドとなっています。内容は定期的に更新され、記事公開時点の最新情報が反映されます。エンタープライズネットワークに特有のホストとポートについては、エンタープライズネットワークで Apple 製品を使う方法をこちらの記事でご確認ください。 ソフトウェアによっては別のポートやサービスが使われる場合もあるため、ファイアウォールやその類のアクセス制御方式の設定方法を判断する際は、ポート監視ソフトウェアを使うとよいでしょう。 サービスによっては、以下のポートを複数使うものもあります。たとえば、VPN サービ
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
自己紹介 WHILLという会社でパーソナルモビリティつくってます。Co-Founderの福岡です。 基本的には組み込み系のソフトウェアエンジニアですが、電気回路から部品調達、法規制、知財や細胞培養まで大抵のことは頑張ります。 ブログも書いたこと無いのですが、SORACOMさんからの期待に頑張って応えてみようという試みです。 SORACOMシステムを使う理由 そもそも何でSORACOMさんのシステムを使う必要が出たかと言いますと、主にセキュリティです。 これからの計画になりますが、今後WHILLは3Gなんかのセルラー通信で直接インターネットに繋がって、機体情報なんかをAWSなんかにあげていきます。 AWSに入ればセキュリティ確保する方法は色々ありますが、そこまでの経路上のセキュリティどうするの?ってことが懸念点です。 セルラー通信からAWSの経路で、どうしても一度はインターネットに出てしまう
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く