1.実験目的
- トランスポート層UDPプロトコルの内容を把握する
- UDPプロトコルの動作原理を理解する
- アプリケーション層とトランスポート層プロトコルの関係を理解する
2.実験環境
- ハードウェア要件:阿里雲クラウドホスト ECS を1台。
- ソフトウェア要件:Linux/Windows オペレーティングシステム
3.実験内容
UDP(User Datagram Protocol、ユーザデータグラムプロトコル)は、コネクションレス型のトランスポート層プロトコルで、イベント指向の単純で信頼性のないデータ伝送サービスを提供します。多くのアプリケーション層プロトコル(NFS、SNMP、DNS、TFTP など)をサポートします。TCPとは異なり、UDPはIPプロトコルの信頼性機構、制御、エラー回復などを提供しません。UDPは比較的シンプルで、UDPヘッダには少ないバイトしか含まれず、TCPよりペイロードの消費が少ないです。
以下の実験を完了し、表を埋め、質問に答えてください。
3.1 DNSクエリ UDPデータ分析
tcpdumpを使用してDNSクエリのネットワーク通信パケットを取得し、wiresharkを用いてUDPデータを分析します。
例:
dig www.xju.edu.cn3.2 QQ UDPデータ分析
Wiresharkを使用してQQネットワーク通信データパケットを取得し、UDPデータを分析します。
QQクライアント間のメッセージ伝送はUDPを採用しています。国内のネットワーク環境は非常に複雑で、多くのユーザーが代理サーバを介して同じ回線でインターネットに接続する方法を採用しているため、UDPパケットは大半の代理サーバを透過できます。そのためQQはクライアント間の通信プロトコルとしてUDPを選択しました。したがって、QQのチャットウィンドウを開いてキャプチャを開始し、友人と会話をしてキャプチャを停止するとUDPデータパケットを得ることができます。
4.実験結果と分析
4.1 捕捉データに基づくUDPメッセージ構造の分析:UDPプロトコルの各フィールド名・値・情報を下表に入力
- DNSクエリ UDPデータ分析
まずtcpdump -i eth0 -w test.capとtraceroute www.xju.edu.cn -Tを用いて捕捉し、test.cap内のデータを分析します。実行過程は以下の図のとおりです。

次にDNSをフィルタしてUDPデータを分析します。下の図のとおりです。

取得データを下表に入力します。
| フィールド名 | フィールド値 | フィールド情報 |
|---|---|---|
| 送信元ポート | 54022 | 送信元ポート: 54022 |
| 宛先ポート | 53 | 宛先ポート: 53 |
| 長さ | 52 | 長さ: 52 |
| チェックサム | 0x1582 | チェックサム: 0x1582 [未検証] |
- QQ UDPデータ分析
Wiresharkを使用してローカルのQQデータをキャプチャした過程は以下の図です。
- イーサネットを選択

- キャプチャを終了

- OICQをフィルタしてデータを取得・分析

取得データを下表に入力します。
| フィールド名 | フィールド値 | フィールド情報 |
|---|---|---|
| 送信元ポート | 4022 | 送信元ポート: 4022 |
| 宛先ポート | 8000 | 宛先ポート: 8000 |
| 長さ | 63 | 長さ: 63 |
| チェックサム | 0x8c64 | チェックサム: 0x8c64 [未検証] |
4.2 実験結果の分析に基づくUDPパケット構造はどのような部分で構成され、それぞれの機能は何か?
実験で得られたデータから、UDPパケットの本体は2つの部分に分かれます:UDPヘッダ(8バイト)+ UDPデータ/UDPペイロード。UDPヘッダは送信元ポート、宛先ポート、長さ、チェックサムで構成されています。
UDPヘッダの4つのフィールドは、それぞれ2バイト(16ビット)を占め、その機能は以下のとおりです:
送信元ポート
送信元ポートは、サーバー側アプリケーションがパケットの送信元を特定するのに役立ちます。宛先ポート
宛先ポートは、宛先ホストがそのポートで待機しているアプリケーションデータを対応する応答プロセスへ渡すのに役立ちます(=対応機能を実行します)。長さ
長さフィールドは、UDPパケット全体のバイト数(ヘッダを含むデータ)を示します。データフィールドの長さはUDPペイロード内で固定されていないため、受信側プログラムの処理を容易にするために長さフィールドが必要です。検査和
チェックサム
受信側はチェックサムを用いて、このパケットに誤りが含まれていないかを検査します。
5.実験結論
5.1 問題と解決方法
-
tracerouteコマンド使用時に -bash: traceroute: command not found というエラーが発生しました。解決方法として、yum install traceroute コマンドを実行して traceroute をインストールします。
-
Xftpを使ってサーバーへ接続する際に接続エラーが発生した場合、キャンパスネットワークに接続してから通常に戻ることを確認しました。原因はサーバーファイアウォールによるものと判明しました。
5.2 感想
- 本実験レポートでは、IPプロトコル分析の過程でのコードとソフトウェアの操作に熟練し、UDPパケットの分析と抽出を通じて授業で学んだ知識を実証しました。今回の実験を通じて、tracerouteコマンドの具体的な使用手順を身につけ、一般的なIPプロトコル分析ソフトウェアの基本的な使い方を理解し、プログラミング能力を向上させました。
- これらの一般的なIPプロトコル分析コマンドの操作を通じて、IPプロトコルの追跡分析とUDPパケットの構造分析を実践し、授業で学んだ知識を再確認しました。
この記事が役に立ったときは、ぜひ他の人に共有してください!
一部の情報は古い可能性があります





