自作の完全自動株式売買アプリケーションを運用しています。

サーバにアクセス>HTML取得>解析>アルゴリズムに基づいて発注処理 というロジックです。
当たり前のことですが、クライアント側の処理時間に比べてHTML取得に時間がかかります。(200msec)
アクセス先のサーバの処理能力によるものが大きいとは思いますが、クライアントーサーバ間にあるルーターなどの
ネットワーク機器の処理能力も少なからず影響していると思われます。
このHTML取得時間を極力早くするために、適していると思われるルーターを教えてください。
(実効スループットの大きさではなく、レスポンスの速さ重視)
また、HTML取得を高速化するテクニックなどがありましたら合わせて教えていただけると大変助かります。(使用言語はC#)

ルーターは現在の所、マイクロ総研のSuperOPT-100Eなどを検討しています。それでは宜しくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/07/03 03:16:42
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:ardarim No.1

回答回数897ベストアンサー獲得回数145

ポイント60pt

HTMLをどのような方法で使っているか(どのライブラリを使っているか)にもよると思いますが、サーバ側がHTTP/1.1以上であれば、基本的に持続型接続(keep-alive/persistent connection)を使うのが効率的です。


通常HTTPのリクエストでは、クライアントからサーバにHTTPリクエスト(GETなど)を送り、サーバからクライアントにHTTPレスポンス(HTML本文)が返されて1セッションが終わります。このとき、毎回TCPコネクションが切断されます。

持続型接続の場合は、リクエスト/レスポンスを1往復した後もTCPコネクションを繋いだままにしておき、そのまま次のリクエストを送ることができるため、TCP/IPパケットを節約することができます(結果としてたくさんのHTMLをより早く取得できます)


また、HTTP/1.1では持続型接続を前提としたリクエストのパイプライン化が認められているため、複数のリクエスト(URL)を一度にサーバにまとめて送ることができます。サーバはHTMLを順番にまとめて送り返してくれます。この場合パケットの節約にもなりますし、サーバ側も先読みの処理ができる(クライアントが1つ目のHTMLを受け取っている間に次のHTMLの準備をして送れる)場合があるためレスポンス時間が早くできる場合があります。


参考

HTTP Pipelining FAQ - MDC

[Studying HTTP] Persistent Connections


例えばブラウザは、最初にHTMLを取得した後、HTMLに含まれる複数の画像をパイプライン処理を使ってまとめて取得するといったことを行ったりして表示の高速化を図ります。

id:kent0608

大変参考になりました。ありがとうございます。

2008/06/27 01:59:18

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません