ライアットを繰り返し失敗に導いた作者、ピン:作者は若くして交通事故で亡くなり、何千行ものソースコードが世界を変えた

ライアットを繰り返し失敗に導いた作者、ピン:作者は若くして交通事故で亡くなり、何千行ものソースコードが世界を変えた

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。

ping 」のようなコンピューター用語が、League of Legends MSIの話題の中で話題になるとは思っていませんでした。

WeiboでもZhihuでも、「ping」関連のトピックの人気度は数千万、あるいは数億を超えています。

このトピックでの議論から判断すると、多くのネットユーザーが ping の研究に熱中しているようです。

そういえば、オンラインゲームをよくやる友達はpingについてよく知っているはずです。

ping 値に支配される恐怖を何度か感じたことがない人がいるでしょうか? (手動犬頭)

△高ping戦士は恐れ知らず

ping 値が高いほど、ゲームをプレイする際のネットワーク遅延が大きくなります。これはゲームに反映され、遅延の低い人は遅延の高い人よりもさまざまなアクション (殺害、移動など) をより速く実行できます。

ここでの ping 値はネットワーク速度を表すものではないことに注意してください。

言い換えると、データ パケットが宅配便の場合、ネットワーク速度が速いほどトラックの積載量が大きいことを意味し、ping 値はトラックがどれだけ速く走行できるかと道路の混雑状況を表します。

ping 値が低いほど、ネットワークはスムーズになりますが、一度に伝送できるデータの量とは関係ありません。

しかし、ping がもともとどのように発明されたかご存知ですか?

実際、今ではゲームをしたり、会議を開いたり、遅延を測定したりする際に「遍在」しているこのコンピューター技術は、当時は「気軽に」書かれたものでした。

物語は1980年代に始まります。

1983年の1000行のコード

ping と呼ばれるこのツールは、もともとMichael John Muussという人物によって作成されました。

ムース氏は1958年生まれ。ジョンズ・ホプキンス大学を卒業後、アバディーン実験場と呼ばれる米陸軍の兵器試験センターで、主にコンピュータネットワークと幾何学的モデリングに関する研究に従事した。

たとえば、レイ トレーシングが1980 年代に初めて普及したとき、ブラザー ムスはすでに対応するテクノロジの研究に専念していました。

この期間中、彼は関連する多くの業績を残しましたが、現在最も有名なネットワーク ツールの 1 つとなっているのは、彼が「偶然に発明した」ping です。

ping はどの程度広く使用されていますか?

オリジナルの Unix システムから今日の Windows、macOS、Linux に至るまで、ping はいくつかのバージョンを経てきましたが、常にさまざまなオペレーティング システムで広く使用されてきました。

最近、GitHub で検索すると、ping を実装したコードがたくさん見つかりますが、これらはオリジナルのバージョンではありません。

Muuss は自身のホームページで ping のオリジナル ソース コードを公開しています。しかし、それをクリックすると、Web ページが何度もジャンプし、最終的にはダウンロードできない状態になっていることがわかりました。

ミュースのホームページを見ることができるという事実自体が珍しいことだ。

2000年、ムースは42歳の誕生日の直後に自動車事故で亡くなりました。

幸運なことに、当時のウェブページがウェブアーカイブに保存されていたので、 ping のソースコードの最初のバージョンを見ることができました。

コード ファイル名はping.sharです。これは非常に古いサフィックスで、現在ではほとんど誰も使用していません。

これは 41KB のファイルで、エディターから見ると約 1600 行のコードがあります。

では、ping はどのようにして誕生し、普及したのでしょうか?

ping はどのようにして普及したのでしょうか?

Muuss 氏が最初にコードを書いたとき、それがこれほど人気が​​出るとは思ってもいませんでした。

結局のところ、元々の ping は、実験室のネットワーク異常をトラブルシューティングするために使用されたテスト ツールにすぎませんでした。

事件は1983年12月のある日、ムース氏がアバディーン弾道性能試験場の弾道研究所(BRL)で実験を行っていたとき、突然、研究所のIPネットワークに異常があることに気づいたことから始まった。

このとき、彼は数か月前にノルウェーで DARPA が開催したセミナーに参加したことを思い出しました。そのセミナーで、デイブ・ミルズという医師が、ICMP データ パケットを使用して遅延をテストする方法について言及していました。

Muuss 氏は、このツールの原理は、音波を送信してその反響を受信し、往復時間を計算するようなものだと考えています。

△ソナー、出典:Wikipedia

偶然にも、Muuss 氏は大学時代にソナーとレーダー システムのモデリングについて多くを学んでいました。彼はすぐにプログラムを書き、ソナーの音波パルスまたは信号を意味する「ping」と名付けました。

その後、Muuss は ping プログラムをたった一晩で作成しました。

これを書いた時点では彼の研究室はネットワークの問題を解決していたにもかかわらず、Muuss 氏はそれをパブリック ドメイン ソフトウェア (使用にライセンスは不要) としてリリースしました。

すぐに、カリフォルニア大学バークレー校の Erick Engelke 氏がこのソフトウェアを発見し、(GPL オープンソース契約に従って) 書き直して、バークレー校自身が開発した Unix オペレーティング システムの BSD4.3 バージョンに組み込みました。

その後、コンピューター エンジニアの Tim Crawford 氏が、MIT オープン ソース プロトコルに基づいて ping コードの ReactOS バージョンを作成しました。

その後、ping はコンピューターの専門家によって macOS、Linux、Windows などのさまざまなオペレーティング システムに書き込まれ、さらに多くの機能が追加されました。

△Linuxシステム上のping.c

現在、さまざまなシステムに付属している ping ツールは、もはやオリジナルの ping.shar プログラムではありません。その機能と用途ははるかに豊富です。

では、今日のコンピューターにとって ping とはどのようなツールなのでしょうか?

pingの基本原理

多くのコンピュータ愛好家は、ping の使い方が得意だと言うかもしれません。

しかし、ping がどのように機能するかご存知ですか?

これを知っておくと、その背後にある理由を理解することも役に立ちます。

Ping は、ネットワーク構造のアプリケーション層におけるネットワーク管理コマンドです。2つのホストまたはルーティング ノード間のネットワークが障害に遭っていないかどうかを判断する重要な手段です。

簡単に言えば、2 つのホストが互いに「ping」できる場合、それらの間で接続を確立できることを意味します。

ちょっとした知識: パブリック (インターネット) IP アドレスは一意です。

これは、世界(パブリック ネットワーク)内の建物(ホストまたはルーティング ノードなど)で作業しているようなものです。この建物のアドレス(IP アドレス)は世界で一意ですが、建物内の他の番地(イントラネット IP アドレス)は必ずしも一意ではありません。

この機能を使用すると、ping を使用して 2 つのホストまたはルーティング ノード間のネットワーク接続をテストできます。

具体的には、まず ping コマンドを使用して、ICMP プロトコルに準拠したデータ パケット (エコー要求) を対象の IP アドレスに送信します。

次に、返されたデータ パケット (パケット損失、速度など) に基づいて、ホストまたはルーティング ノード間のネットワーク ステータスを確認できます。

えーっと… ICMPプロトコルって何ですか?

正式名称は、インターネット制御メッセージ プロトコル、つまりインターネット制御メッセージ プロトコルです。ICMP メッセージは IP パケットにカプセル化されます。

いわゆる「制御」とは、データ パケットがターゲット エンドに正常に到達したかどうかやネットワークの状態などを反映するために、IP ホストとルーティング ノード間で制御メッセージを送信することを指します。

IP 通信では、IP パケットがターゲット アドレスに正常に到達して戻ってくると、ping 応答が受信されます。IP パケットがターゲット アドレスに正常に到達できなかった場合、または何らかの理由でターゲット アドレスから正常に戻れなかった場合、ICMP によって返されるデータ パケットには、ネットワークに到達できない、ポートに到達できないなどの具体的な理由が含まれます。

pingする方法

以下にpingの基本的な操作を紹介します。

ping コマンドは、すべての一般的なオペレーティング システムで共通です。ここでは、macOS を例に挙げます。

Finderからターミナルを見つけます。

ping+IP アドレス(URL またはドメイン名も OK)を入力します。ここでは Baidu を例に挙げます。

次に、データ パケットと、このコンピューターが Baidu のネットワーク サーバーにデータを送信してから、サーバーからフィードバックされたデータを受信するまでの遅延時間を確認できます。

macOS によって送信される各 IP パケットのデフォルト サイズは 64 バイトであるため、返されるパケット サイズも 64 バイトになります。

ここでの遅延時間はping値です。

Baidu やその他の URL を入力するだけでなく、1 つのホストの IP アドレスを入力して、2 つのホスト間の ping 値をテストすることもできます。

そのため、オンラインゲームをプレイする際に、ping値が高すぎると、操作に遅延を感じることになります。

この遅れの結果は非常に深刻です——

たとえば、キング オブ グローリーのランキング マッチの重要な瞬間に、ネットワーク接続 (自分の無線ネットワークまたは近くのサーバー) が停止すると、すでに操作を行ったにもかかわらず、敵の操作フィードバック時間の方が速くなり、ヒーローが死ぬのをただ見ているしかありません。

そうは言っても、QuantumBit はすぐにログインして自社のネットワークを診断しました。

幸いなことに、Honor of Kings の遅延は 70 ミリ秒未満であれば正常です。

League of Legends の場合、プレイヤーは設定メニューを開き、「表示」タブをクリックして、「FPS 表示の切り替え」ボタンをクリックすることで、ping 値を確認できます。

Ping ロック (人工的な遅延) 技術の実装方法については、 Riot Games が公式に技術的な説明を提供しています。

説明によると、Riot はオフライン スタジアム競技中に ping 値を調整するために人工的な遅延ツールを追加したと述べています。

人工遅延ツールのコード操作エラーにより、オフラインping値が高すぎました。設定を調整して修正しましたが、ゲーム内に表示されるping値はこの設定調整により問題が発生します。

特定の人工遅延ツール(ping ロック)の技術コードは、Riot Games によって公開されていません。しかし、遅延やパケット損失などのバグをシミュレートできる、以下の不格好なオープンソースシミュレーターのような人工的な遅延ツールを GitHub 上ですでに作成している人もいます。興味のある方はご覧ください:

もう一つ

Muuss 氏は自身のホームページで、「ping」に関連するもう一つの興味深い話も投稿しました。

アメリカの児童向け絵本作家マージョリー・フラックは、 1933 年に早くも絵本『ピンの物語』を出版しました。

ここで、Ping は物語の主人公である小さなアヒルの名前です。

小さなアヒルのピンは、友達や飼い主と一緒に船で暮らしています。毎日、最後に家に帰ってきたアヒルは、お尻を叩かれます。ある晩、ピンは遊び心で他の子たちより遅れてしまいました。負けないように家に帰らず、揚子江で素晴らしい冒険を始めました。そして、無事に飼い主の船に戻りました。

これは普通の児童書のように見えるかもしれませんが、何年も経ってから、何人かの読者が、アヒルの子のピングの物語がコンピューターのピング データ パケットに似ていることに気付きました。

Ping パケットは、他のパケット (さらに多くのアヒル) と一緒にホスト (ボート) 上でしばらく過ごすアヒルのようなものです。

その後、パケット(アヒル)はチャネル(橋)を通ってホスト(船)を離れ、インターネット(揚子江)に入ります。

データ パケット (アヒル) は別のホスト (別の船) で短時間過ごした後、元のホスト (船) に戻ります。

さて、今日のpingはどうですか?

<<:  TensorFlow 2.9が利用可能になりました。CPUパフォーマンスの最適化を実現するためにoneDNNが改良され、WSL2がすぐに利用可能になりました。

>>:  産業規模は500億に迫る。産業用ロボット業界は今後何をすべきか?

ブログ    
ブログ    

推薦する

データ拡張: データが限られている場合にディープラーニングをどのように使用するか? (下)

私たちは皆、そこに行ったことがあります。機械学習の概念に精通しており、それを機械学習モデルに適用でき...

...

AI、機械学習、ディープラーニングの違いは何ですか?

人工知能 (AI) は未来だと言う人もいれば、AI は SF だと言う人もいれば、AI は私たちの日...

2022年の銀行業界における人工知能の応用

人工知能はあらゆる分野に革命をもたらしており、銀行業も例外ではありません。 調査によると、世界の人工...

...

ロボティック プロセス オートメーションの 10 大メリット

ロボティック プロセス オートメーション (RPA) ソリューションは、人間が日常的に実行する多くの...

PyTorchの基本操作の詳細な説明

[[406246]] PyTorch とは何ですか? PyTorch は、最大限の柔軟性と速度を備え...

ロボットとAIがサプライチェーンを自動化する方法

自動化技術は現在あらゆる業界に浸透しつつあり、これはサプライチェーンにおいて特に顕著です。実際、自動...

百度地図のデータ収集リンクの80%はAIベースになっており、旅行業界はインテリジェントにアップグレードされている

人工知能時代の地図データ制作はどのような変化を遂げるのでしょうか?7月3日、「Baidu Creat...

ボストン・ダイナミクスのロボット犬「スポット」が新たなスキルを獲得:縄跳びや服拾い

海外メディアCNETによると、ボストン・ダイナミクスのロボット犬「スポット」はすでにダンス、鉱山探索...

本当に良いものです!機械学習技術と市場の最強評価ガイド

【51CTO.comオリジナル記事】機械学習の特許は、2013 年から 2017 年の間に 34% ...

国際翻訳コンテストで優勝したモデルがByteDanceによってオープンソース化された。

Transformer などの主流のテキスト生成アルゴリズムの単語単位の生成は、並列計算に適した ...

...

人工知能は宇宙人を発見するのに役立つかもしれない

米国の宇宙ウェブサイトによると、多くの科学者が人工知能(AI)を使ってエイリアン(学名は「地球外知的...

...