Shikata Ga Nai

Private? There is no such things.

WiresharkでDHCPプロトコルをのぞいてみた

Hello there, ('ω')ノ

 

UDPは、コネクションレス型プロトコルで。

ホスト間でリアルタイムデータを送信するのに最適ですが。

通信の信頼性の低い形式と呼ばれることもあって。

理由は、ドロップされたパケットや破棄されたパケットについて。

送信者に通知されず、失われたパケットは回復されないためで。

TCPのように3ウェイハンドシェイクなどを実行しないので。

パケットの転送が高速になって。 

 

さて、通常のUDPヘッダのサイズは8バイトで。

ヘッダに追加されるデータは、理論的には65,535バイト(実際は65,507)バイトで。

TCPヘッダとのフィールドは、以下の4つ。


送信元ポート:

 送信側が受信するために使用するポート番号。

 TCPやUDPでは、ソケットの一部として選択されるポート番号は一時的なもので。


宛先ポート:

 受信側で使用されるポート番号。


パケット長:

 ヘッダからデータの最後までのパケットの長さ。

 観察される最小の長さは8バイト、つまりUDPヘッダの長さ。


チェックサム:

 送信側から送信されるものが受信側が取得したものと同じであることを確認して。

 UDPの場合、受信したパケットのチェックサム値が0である場合があって。

 つまり、チェックサムを検証する必要はなく。

 

とりあえず、DHCPのプロトコルを分析することに。

デフォルトゲートウェイを192.168.1.1に。

クライアントを192.168.1.44に構成して。


リストペインに、クライアントから送信されたDHCPリリースパケットが表示され。

デフォルトでは、DHCPサーバのポート番号は67で。

DHCPクライアントのポート番号は68。

 

パケット長フィールドの308は、パケットの長さを指定するので。

最初のバイトから始まって、パケットのデータの終わりまでで。

ただ、308バイトのうち、8バイトはUDPヘッダーの長さなので。

残りの300バイトがアプリケーションデータというわけで。

 

f:id:ThisIsOne:20200703154827p:plain

 

Best regards, (^^ゞ