2024/09/25 のものと同じ。
https://lsnl.jp/~ohsaki/lecture/netcomp/2024/#10-1
- リゾルバが利用する hosts ファイルを利用することの利点および欠点を理解し、他人に説明できるようになる。
- アプリケーション層プロトコルである HTTP の仕組みを理解し、他人に説明できるようになる。
- HTTP/1.0 と HTTP/1.1 の違いを理解し、プロトコルの違いが通信性能に与える影響を定量的に理解できるようになる。
- Web ブラウザ等のソフトウェアを使用せず、Web サーバと HTTP プロトコルで対話できるようになる。
資料
RFC 1945 Hypertext Transfer Protocol -- HTTP/1.0. T. Berners-Lee, R. Fielding, H. Frystyk. May 1996. https://www.rfc-editor.org/rfc/rfc1945
RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee. June 1999. https://www.rfc-editor.org/rfc/rfc2616
HTTP の進化 https://developer.mozilla.org/ja/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP
通常、 リゾルバにおける名前解決では、 DNS よりもローカルの設定ファイルを優先する。 UNIX 系オペレーティングシステムでは /etc/hosts ファイルが、 Windows の場合は Windows/System32/drivers/etc/lmhosts ファイルが参照される。
頻繁に利用する Web サーバのホスト名と IP アドレスを、 オペレーティングシステムの hosts ファイルや lmhosts ファイルに記述しておくことの利点および欠点を説明せよ。
HTTP/1.0 の GET リクエストを用いて、 Web サーバ上の 2 つのコンテンツ (/index.html と /logo.png) を取得する時にネットワーク中を転送されるパケット数 N の最小値 N_minはいくらか。 ただし、 2 つのコンテンツは十分に小さいものとする。
HTTP/1.1 の GET リクエストを用いて、 Web サーバ上の 2 つのコンテンツ (/index.html と /logo.png) を取得する時にネットワーク中を転送されるパケット数 N の最小値 N_minはいくらか。 ただし、 2 つのコンテンツは十分に小さいものとする。
Web ブラウザ等の HTTP プロトコルを解釈するソフトウェアを利用せずに、 http://google.co.jp/ を取得せよ。
利点: DNS による名前解決が不要となるため、初回のアクセスが高速となる。
欠点: サーバの IP アドレスが変化した時にアクセスできなくなる。
HTTP/1.0 では、コンテンツの取得ごとに TCP コネクションを確立する。 このため、転送されるパケット数 N は
N = DNS による名前解決のために転送されるパケット数 N1
+ HTTP による /index.html の取得のために転送されるパケット数 N2
+ HTTP による /logo.png の取得のために転送されるパケット数 N3
で与えられる。
リゾルバがキャッシュしていた場合に N1 は最小値 0 を取る。
N2 と N3 はともに、以下の場合最小となるから N2 = N3 = 6。
クライアント Web サーバ
| |
| a) SYN |
| ---------------> |
| |
| b) SYN + ACK |
| <-------------- |
| |
| c) ACK |
| ---------------> |
| |
| d) GET request |
| ---------------> |
| |
| e) response+ACK | /index.html の転送
| <--------------- |
| |
| f) ACK |
| ---------------> |
したがって、転送されるパケット数の最小値 N_min = 0 + 6 + 6 = 12。
HTTP/1.1 では、 単一の TCP コネクションを利用 (再利用) して、 複数コンテンツを取得できる。
単一の TCP コネクションで複数のコンテンツを取得した場合、 転送されるパケット数 N は、
N = DNS による名前解決のために転送されるパケット数 N1
+ HTTP による /index.html と /logo.png の取得のために転送されるパケット数 N2'
で与えられる。
リゾルバがキャッシュしていた場合に N1 は最小値 0 を取る。
N2' は以下の場合最小となるから N2' = 9。
クライアント Web サーバ
| |
| a) SYN |
| ---------------> |
| |
| b) SYN + ACK |
| <-------------- |
| |
| c) ACK |
| ---------------> |
| |
| d) GET request |
| ---------------> |
| |
| e) response+ACK | /index.html の転送
| <--------------- |
| |
| f) ACK |
| ---------------> |
| |
| g) GET request |
| ---------------> |
| |
| h) response+ACK | /logo.png の転送
| <--------------- |
| |
| i) ACK |
| ---------------> |
したがって、転送されるパケット数の最小値 N_min = 0 + 9 = 9。
Web サーバ (google.co.jp) の 80 番ポートに対して TCP コネクションを確立し、 HTTP/1.0 の GET リクエストを送信すればよい。
> telnet google.co.jp 80
Trying 142.250.206.227...
Connected to google.co.jp.
Escape character is '^]'.
GET / HTTP/1.0 ← ここは自分で入力
← ここも自分で入力 (Enter を 2 回押す)
HTTP/1.0 200 OK
Date: Wed, 13 Dec 2024 02:10:41 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Content-Security-Policy-Report-Only: object-src 'none';base-uri 'self';script-src 'nonce-o2iUKfXDa-HUs6hhyu6HeA' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp
P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Server: gws
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Set-Cookie: 1P_JAR=2024-12-13-02; expires=Fri, 12-Jan-2024 02:10:41 GMT; path=/; domain=.google.com; Secure
Set-Cookie: AEC=Ackid1SYifYm8j3dMTzhAb4hyP6mIcMMILdgP1ZKJpN3Ol-3zoa1w3fjpA; expires=Mon, 10-Jun-2024 02:10:41 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax
Set-Cookie: NID=511=KkiZxX3u9TTDzWi5aN_8bY68Ts5Cb82xkdVhz6dOulVH9Rg1K6Rd7hJDhKL4yKexymTag_UQExiYrmrzCvjDBbmfMKWlwKQR7Wpv37y_QEDeWFmybi5x-ocFyAZwgRvuT9MxgwaUYxBRqI3st3KuZB71TD6C6sp4Vh2qW483BRo; expires=Thu, 13-Jun-2024 02:10:41 GMT; path=/; domain=.google.com; HttpOnly
Accept-Ranges: none
Vary: Accept-Encoding
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="ja"><head>...
:
:
「レポート課題 2024/09/21」と同じ。
[<20. DHCP、ネットワークアドレス変換] [>22. 後半の総復習]