• 検索結果がありません。

7.TCPとUDP(TCP/IP) 7-1. トランスポート層の機能. 1. アプリケーションからのデータをゼグメント化する. 2. プロセス間通信を実現する. 3. 信頼性の高い通信をサポート ( 応答確認, フロー制御, シーケンス制御 ) 7-2.TCP(Transmission Contro

N/A
N/A
Protected

Academic year: 2021

シェア "7.TCPとUDP(TCP/IP) 7-1. トランスポート層の機能. 1. アプリケーションからのデータをゼグメント化する. 2. プロセス間通信を実現する. 3. 信頼性の高い通信をサポート ( 応答確認, フロー制御, シーケンス制御 ) 7-2.TCP(Transmission Contro"

Copied!
9
0
0

読み込み中.... (全文を見る)

全文

(1)

7.TCPとUDP(TCP/IP)

7-1.トランスポート層の機能.

1. アプリケーションからのデータをゼグメント化する. 2. プロセス間通信を実現する.

3. 信頼性の高い通信をサポート(応答確認,フロー制御,シーケンス制御)

7-2.TCP(Transmission Control Protocol

 接続を維持する.電話のようなもの(相手とのやり取りがある).  信頼性が高い.ただし,複雑で重い. 高信頼性通信を実現するための機能. 1. 確認応答によるセグメントの再送処理 2. ウィンドウサイズによるフロー制御 3. シーケンス制御 4. エラー検査 7-2-1. プロセス間通信  ポート番号(後述)を使用したプロセス間通信.

 3方向ハンドシェイク(SYN, ACK+SYN, ACK)による通信の開始.

接続時の通信

 初期シーケンス番号,Maximum Segment Size,初期ウィンドウサイズが通知される. ① SYN ③ ACK ② SYN + ACK 接続(クライアント)側 SYN_SENT LISTEN CLOSE ESTABLISHED ESTABLISHED SYN_RCVD PiggyBack 被接続(サーバ)側

(2)

① FIN ② ACK FIN_WAIT_1 TIME_WAIT ESTABLISHED ESTABLISHED 切断側 アクティブクローズ アクティブクローズ FIN_WAIT_1 CLOSING CLOSING TIME_WAIT CLOSE CLOSE ① FIN ② ACK 切断側 切断時の通信2 2MSL 2MSL ① FIN ④ ACK ③ FIN 切断側 切断時の通信1 被切断側 ② ACK FIN_WAIT_1 FIN_WAIT_2 TIME_WAIT アクティブクローズ パッシブクローズ ESTABLISHED ESTABLISHED CLOSE CLOSE LAST_ACK CLOSE_WAIT ⑤ FIN ⑥ ACK 残Data の送信 ハーフクローズ状態 残Dataに対するACK 残Data 切断処理 2MSL

(3)

7-2-2. 高信頼性通信  確認応答 送信側 受信側 データ①を送信 データ①のチェ ックサムが合わ ない場合,データ ①の再送要求 デ ー タ ① を 再 送 データ①のACK, データ②の要求 送信側 受信側 データ①を送信 データ①のACK, データ②の要求 データ②を再送信

×

再 送 タ イ ム アウト(RTO) データ②を送信 データ②のACK, データ③の要求

(4)

 フロー制御(ウィンドウサイズ),シーケンス制御,エラー検査(破棄と再送要求) セグメントを1個づつ送っていたのでは効率が悪い→セグメントをまとめて送る.まと めて送るサイズがウィンドウサイズ ウィンドウサイズを徐々に増加させ,セグメントがロストしたらウィンドウサイズを一 気に減らす.→ 効率はよくない. 詳細は別資料参照. 送信側 受信側 ①を送信 ②を送信 ③を送信 ④を送信 ⑤を送信 ⑥を送信 ⑦を送信 ⑧を送信 ⑨を送信 ⑩を送信 ①のACK,②の要求 ②のACK,③の要求 ③のACK,④の要求 ④のACK,⑤の要求 ⑤のACK,⑥の要求 ⑤を送信後に,②の ACK(③の要求)を 受信した時点で,⑥ ⑦が送信可能になる ⑥のACK,⑦の要求 ⑦のACK,⑧の要求 ⑧のACK,⑨の要求 ⑨のACK,⑩の要求 ⑩のACK,⑪の要求

(5)

7-2-3. TCP セグメントの構造 送信元ポート番号(16) 宛先ポート番号(16) シーケンス番号(32) 応答確認番号(32) ヘッダ長(4) 予約(6) コードビット(6) ウィンドウサイズ(16) TCP チェックサム(16) 緊急ポインタ(16) ヘッダオプション(可変長) アプリケーションデータ(可変長) ( )内は該当データの bit 長. シーケンス番号:転送するデータの順序番号. 応答確認番号:受信側が次に期待するデータの Octet 番号(何 Octet 目から送って欲しいか) ヘッダ長:ヘッダの長さ(4ctet 単位).ヘッダオプションがない場合は 5(20octet) 予約:将来のための予約領域.0.

コードビット:セグメントのタイプ(SYN, ACK, RST, FIN, URG, PSH など) URG: 緊急データ.PSH: 直にアプリへデータを渡すことを要求. ウィンドウサイズ:一度に受信可能なウィンドウのサイズ(Octet 単位) TCP チェックサム:TCP セグメント全体のチェックサム(計算方法はかなり複雑) 緊急ポインタ:緊急データ(URG)を処理中の場合,緊急データの終わりを表す. ヘッダオプション:セグメントの最大サイズ(MMS)の通知に使用される.最大 40Octet. アプリケーションデータ:アプリケーションが使用するデータ.

(6)

7-3.UDP(User Datagram Protocol

)  接続を維持しない.手紙のようなもの(一回限りの通信)  信頼性は低い.ベストエフォート(最大努力)型.単純で軽い. DNS, SIP, RTP 7-3-1. プロセス間通信  ポート番号(後述)を使用したプロセス間通信.TCP と同じ. 7-3-2. 低信頼性通信  エラー検査あり.応答確認なし.接続維持なし. 7-3-3. UDP セグメント構造 送信元ポート番号(16) 宛先ポート番号(16) UDP データ長(16) UDP チェックサム(16) アプリケーションデータ(UDP データ:可変長) ( )内は該当データの bit 長. UDP データ長:アプリケーションデータのデータ長(Octet 単位). UDP チェックサム:UDP セグメント全体のチェックサム(計算方法はかなり複雑) アプリケーションデータ:アプリケーションが使用するデータ.

(7)

7-4.ポート

 プロセス間の通信:ポートを介して行われる.  TCP と UDP は違うポートを使用する(TCP と UDP でポート番号が同じでも問題ない)  ポートが目的とするサービスに繋がっているという保証はサーバ管理者が行う.  サーバはポートを開いて接続を待つ.クライアントはサーバのポート番号を指定 して通信を行う.クライアントのポート番号は通常自動的に付加される. 7-4-1.ポートの種類  1023 番以下 ウェルノンポート ICANN の IANA が管理 http://www.iana.org/assignments/port-numbers /etc/services

 1024~49151 番 登録ポート(Registered Port) 各ベンダが IANA に申請

 49152~65535 番 ダイナミックポートまたはプライベートポート ダイナミックポート システムが使用するポート(エフェメラルポート) プライベートポート 一般ユーザが使用可能なポート 7-4-2.クライアント・サーバモデル インターネット上のサービス(プロセス)は 「IP アドレス:ポート番号」 の形式で一 意的に指定できる. 例) 202.26.159.139:80 サーバ クライアント サーバのIPアドレスとポート番号 を指定して接続 クライアントのIPアドレスと ポート番号も通知される ポート番号は,通常はシステムが 自動的に付与する サーバポートのポート番号は 明示的に指定される。 ポート プロセス空間 プロセス空間

(8)

7-4-2.ウェルノンポート ポート番号 プロトコル 説 明 20 FTP-data ファイル転送用プロセスでのデータの送受信 21 FTP ファイル転送用プロセスのコントロール 22 SSH 暗号化されたリモートシステムへの接続 23 TELNET リモートシステムへの接続 25 SMTP メールサーバ 53 DNS ドメインネームシステム 80 HTTP WWW サーバ 110 POP3 メールの受信 443 HTTPS 暗号化された WWW サーバ 7-4-3 ポートスキャン サーバマシンで稼動しているサーバプロセス(ポート)のチェックを行う行為をポート スキャンと呼び,ポートスキャンを行うプログラムをポートスキャナと呼ぶ。 コマンド telnet IP アドレス ポート番号 で TCP ポートにアクセス可能 例)telnet 202.26.159.139 80

(9)

【MS Windows】

MS Windows では,コマンドプロンプトから telnet コマンドを入力する。

ただし,MS Widows の Vista は標準では telnet コマンドを使用できない。Vista で telnet コマンドを使用できるようにするには,コントロールパネルから「プログラム」を選択し, さらに「プログラムと機能」を選択する。コントロールパネルをクラシック表示にしてい る場合は,コントロールパネルから直接「プログラムと機能」のアイコンをクリックする。 「プログラムと機能」が起動したら,タスクの「Windows 機能の有効化または無効化」を クリックし,次に表示された画面で「Telnet クライアント」にチェックを入れ,OK をクリ ックする。 図 7.5.1 に MS Windows の telnet で接続に失敗した例を示す。接続に成功した場合は, 前節にあるように接続エラー以外の何らかの反応が返る(反応の内容はサーバプロセスに よって異なる)。 C:\Users\guest> telnet 192.168.27.7 30 接続中: 192.168.27.7...ホストへ接続できませんでした。 ポート番号 30: 接続に失敗しました 図 7.5.1 MS Windows で telnet が接続に失敗した場合 【Linux/Unix】 Linux/Unix の場合はそのままコンソールから telnet コマンドを起動することができる。 図に Linux での接続失敗の例を示す。接続に成功した場合は,接続エラー以外の何らか の反応が返る。 $ telnet 192.168.27.7 30 Trying 192.168.27.7...

telnet: connect to address 192.168.27.7: Connection refused telnet: Unable to connect to remote host: Connection refused

参照

関連したドキュメント

 仮定2.癌の進行が信頼を持ってモニターできる

 第一の方法は、不安の原因を特定した上で、それを制御しようとするもので

はたらき 本機への電源の供給状態、HDC-RH100-D またはツイストペアケーブル対 応製品との接続確立、映像信号の HDCP

この課題のパート 2 では、 Packet Tracer のシミュレーション モードを使用して、ローカル

JTOWER は、 「日本から、世界最先端のインフラ シェアリングを。 」というビジョンを掲げ、国内外で 通信インフラのシェアリングビジネスを手掛けて いる。同社では

注) povoはオンライン専用プランです *1) 一部対象外の通話有り *2) 5分超過分は別途通話料が必要 *3)

タップします。 6通知設定が「ON」になっ ているのを確認して「た めしに実行する」ボタン をタップします。.

操作は前章と同じです。但し中継子機の ACSH は、親機では無く中継器が送信する電波を受信します。本機を 前章①の操作で