ネットワーク工学 第 13 課アプリケーションと トランスポート 学習内容アプリケーションプロトコル TCP 制御とポート番号
13.1.1 アプリケーションプロトコルの概要 ネットワークを利用するアプリケーション特有の通信処理を行う OSI モデルの第 5 6 7 層のすべての機能をもつ通信コネクションの管理 ( セッション ) データフォーマットの変換 ( プレゼンテーション ) 相手ホストとのやり取り ( アプリケーション )
13.1.2 DNS(Domain Name System) インターネット :IP アドレスで通信 ユーザ : ローマ字で入力 IP アドレス (2 進数 ) ドメイン名 ( ローマ字 ) DNS サーバ ホスト名と IP アドレスの効率よい管理方式 ホスト名と IP アドレスのデータベースを管理
13.1.3 DNS とドメイン名 ( ドメインネーム ) ドメイン名 所属組織を識別するための名前例 : 大阪工業大学のドメインネーム oit.ac.jp (osaka institute of technology academy japan) ホスト名 ドメイン名の前に付け ホストを表す例 :D 科のサーバ ( ホスト名 :elc) elc.oit.ac.jp
13.1.4 ドメインの階層構造 root org jp com ietf ieee ac co ac co jp ac co go ne gr 大学企業政府機関ネットワークサービスの提供組織法人資格を持たない任意団体 個人
DNS の問い合わせ ( 正引き ) コマンド :nslookup [ ドメイン名 ] 使用しているネームサーバ DNS からの応答 ドメインに対する IP アドレス
13.1.5 WWW の概念と URL WWW の定義内容 1. 情報へのアクセス手段と位置 2. 情報の表現フォーマット 3. 情報の転送などの操作 URL(Uniform Resource Locator) インターネット上の資源を表す表記法スキーム :// ホスト名 ( ポート番号 )/ 絶対パス例 : http://elc.oit.ac.jp/index.html http://elc.oit.ac.jp:8080/index.html
13.1.6 HTML HTML(Hyper Text Markup Language) Web ページを記述するためのタグ言語 ハイパーテキスト機能 画面に表示する文字 絵にリンク クリックにより別の文字や絵を表示 ( インターネット上のすべてのリソースにリンク可能 ) Java Sun Microsystems 社が開発 プラットフォームに依存しないデータフォーマット
13.1.7 HTTP HTTP(Hyper Text Transfer Protocol) Web ページの情報の転送プロトコル 情報取得要求 elc.oit.ac.jp 情報送信 www.yahoo.co.jp GET HTTP-Text MIMEヘッダ HTTP OK MIMEデータ HTML-Textデータ GET HTTP-Image MIME ヘッダ
13.1.8 電子メール 電子メールのプロトコル :SMTP SMTP では TCP を利用して効率と信頼性を高める 送信メールサーバ 送信 SMTP SMTP インターネット 受信メールサーバ POP 受信
13.1.9 電子メールアドレス MIME 電子メールを用いるときに使われるアドレス 住所と氏名に相当する 氏名 @ 住所の形式 kumamoto@elc.oit.ac.jp メールアカウントホスト名ドメイン名 MIME(Multipurpose Internet Mail Extensions) 電子メールで送信できるデータ形式を拡張 ( 動画 音声 プログラムファイルなどが送信可能 ) OSI では 第 6 層 ( プレゼンテーション ) に該当 ヘッダと本文で構成 ヘッダでデータ形式を指定
13.1.10 遠隔ログイン (TELNET) 遠隔ログインによるアプリケーションの実行 システムの環境設定のプロトコル ルータや高機能スイッチなどのネットワーク機器にログインして設定する場合にも使用 クライアント telnet クライアント OS telnet デーモン OS シェル サーバ シェル :OS とユーザの仲介をしてくれるプログラム例 :Explorer(Win) Finder(Mac) Bash csh(unix)
13.1.11 ファイル転送 (FTP) コンピュータ間でファイルを転送するプロトコル FTP では 2 つの TCP コネクションを使用 制御用 (21 番 ): 認証 ファイル名 データ転送用 (20 番 ) クライアント サーバ データ転送用コネクション 制御用コネクション
13.1.12 NAT(Network Address Translation) プライベート IP アドレスを用いてインターネットにアクセスできるようにする 外部との通信にはルータのアドレスを用いる ( アドレス変換 ) LAN ローカルネットワーク ( プライベート IP アドレス ) WAN 外部ホスト ( グローバル IP アドレス )
NAT の例 10.0.0.2 10.0.0.3 63.90.126.53 10.0.0.1 210.100.1.84 ローカルネットワーク内からのパケットは全て送信元が 210.100.1.84 として扱われる ルータは 210.100.1.84 宛のパケットをローカルネットワークに転送する 問題 :2 台以上のホストが同時に通信できない
13.1.13 PAT(Port Address Translation) ローカルネットワーク内からのパケットを IP アドレスとポート番号の組み合わせで扱う PAT の例 10.0.0.2 10.0.0.3 63.90.126.53 10.0.0.1 210.100.1.84 10.0.0.2 <=> 210.100.1.84 : 9002 10.0.0.3 <=> 210.100.1.84 : 9003
13.2.1 トランスポート層とは? トランスポート層のプロトコル TCP: 伝送制御プロトコル信頼性のある通信を提供 UDP: ユーザデータグラムプロトコル同報通信や アプリケーションに細かい制御を任せる場合 必要となる通信の特性によりプロトコルを選択
13.2.2 トランスポート層での通信処理 トランスポート層 : インターネット層 : データリンク層 : ポート番号 IPアドレス MACアドレス HTTP FTP 80 20 21 イーサネットヘッダ IP ヘッダ 送信元ポート番号 2000 宛先ポート番号 80 接続要求フラグ
13.2.3 ポート番号 1. 標準で決められている番号 (Well-known Port) 使うポートを固定的に決める方法 HTTP FTP TELNET などの代表的なプロトコルは番号が決定されている 一般に 0~1023 番に割り振られる 2. ダイナミックな割り当て方法 サーバ側ポート番号は決まってるが クライアント側は決まってない クライアントは OS に番号をまかせる
13.2.4 ポート番号とプロトコル 番号キーワード 20 21 22 23 ftp-data ftp ssh telnet 25 smtp 80 http 110 pop3 内容 File Transfer[Data] File Transfer[Control] SSH remote login Telnet Simple Mail Transfer Protocol 53 domain Domain Name System World Wide Web HTTP Post-Office Protocol Ver.3
13.2.5 TCP の機能 パケット破棄 パケットロス 重複 順序入れ替わりの解決 チェックサムシーケンス番号と確認応答再送制御コネクション管理ウィンドウ制御
13.2.6 シーケンス番号と確認応答 確認応答 :ACK( 肯定 ) NACK( 否定 ) ホストA ホストB データ (1~1000) 確認応答 (ACK=1001) データ (1001~2000) 確認応答 (ACK=2001) 送信ホストは一定のサイズのデータグラムをシーケンス番号順に受信ホストに送信 受信ホストはデータを受け取ると送信ホストに確認応答 (ACK) を行う 送信ホストは ACK を受信後 続きのデータグラムを送信
13.2.7 TCP のコネクション管理 ホスト A ホスト B コネクション確立 データ転送 データ転送の前後でコネクションの確立 切断 コネクション切断
13.2.8 3-Way ハンドシェイク SYN 送信 (seq = x) ホスト A SYN/ACK 受信 (seq = y ACK = x+1) ACK 送信 (ACK = y+1) 1 2 3 ホスト B SYN 受信 (seq = x) SYN/ACK 送信 (seq = y ACK = x+1) ACK 受信 (ACK = y+1)
13.2.9 ウィンドウ制御 ウィンドウサイズ =4000 ホスト A データ (1~4000) データ (4001~ 8000) ホスト B 確認応答 (1001~ 4001) 確認応答 (5001~ 8001) RTT( 往復時間 ) が長くなると性能が悪くなる ウィンドウ制御 シーケンス毎に確認応答を行わず 連続してデータを送る
13.2.10 フロー制御 輻輳制御 フロー制御 ( 流量制御 ) 受信側のホストの負荷の状態に合わせて送信パケット量に制限を加える 輻輳制御 ( 混雑解消 ) 通信開始時にウィンドウ制御により大量のパケットを送信するとネットワークが混雑 TCP ではスロースタートアルゴリズムを用いて混雑を解消