ネットワークコンピューティング

1. URL
2. 担当教員
3. ネットワークに関する疑問
4. 講義目的
5. 到達目標
6. 授業方法
7. 成績評価
8. スケジュール
9. 大崎が担当する科目に共通の連絡事項・アドバイス
10. LAN の構成要素・通信プロトコル
11. 無線 LAN、VLAN (仮想 LAN)
12. インターネットの概要、TCP/IP
13. IP プロトコル (1)
14. IP プロトコル (2)
15. 前半の総復習
16. TCP プロトコル (1)
17. TCP プロトコル (2)
18. インターネットの要素技術 (経路制御)
19. インターネットサービス (名前解決)
20. DHCP、ネットワークアドレス変換
21. HTTP
22. 後半の総復習

HTTP

授業の流れ・チーム分けの方針・態度目標

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

課題 1

通常、 リゾルバにおける名前解決では、 DNS よりもローカルの設定ファイルを優先する。 UNIX 系オペレーティングシステムでは /etc/hosts ファイルが、 Windows の場合は Windows/System32/drivers/etc/lmhosts ファイルが参照される。

頻繁に利用する Web サーバのホスト名と IP アドレスを、 オペレーティングシステムの hosts ファイルや lmhosts ファイルに記述しておくことの利点および欠点を説明せよ。

課題 2

HTTP/1.0 の GET リクエストを用いて、 Web サーバ上の 2 つのコンテンツ (/index.html と /logo.png) を取得する時にネットワーク中を転送されるパケット数 N の最小値 N_minはいくらか。 ただし、 2 つのコンテンツは十分に小さいものとする。

課題 3

HTTP/1.1 の GET リクエストを用いて、 Web サーバ上の 2 つのコンテンツ (/index.html と /logo.png) を取得する時にネットワーク中を転送されるパケット数 N の最小値 N_minはいくらか。 ただし、 2 つのコンテンツは十分に小さいものとする。

課題 4

Web ブラウザ等の HTTP プロトコルを解釈するソフトウェアを利用せずに、 http://google.co.jp/ を取得せよ。

略解

課題 1

利点: DNS による名前解決が不要となるため、初回のアクセスが高速となる。

欠点: サーバの IP アドレスが変化した時にアクセスできなくなる。

課題 2

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。

課題 3

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。

課題 4

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/12/11

「レポート課題 2024/09/21」と同じ。

[<20. DHCP、ネットワークアドレス変換] [>22. 後半の総復習]