ホームページ >バックエンド開発 >PHPチュートリアル >IP_datagram ヘッダーの長さを処理する方法

IP_datagram ヘッダーの長さを処理する方法

WBOY
WBOYオリジナル
2016-06-13 12:57:28879ブラウズ

IP_datagram ヘッダーの長さ

この投稿は、TomodaMaki によって最終編集されました: 2013-01-07 16:04:34 TCP/IP 図解 第 1 巻、第 3 章、セクション 2

ヘッダーの長さは、オプションを含むヘッダー内の 32 ビットのワード数です。これは 4 ビットのフィールドであるため、ヘッダーは 60 バイトに制限されます。

そんな一節がある。この一節によると、(2^4 * 32)/8 = 64 バイトになるはずだと計算しました。

なぜ作者は 60 バイトと言ったのですか?

別の質問があります。次に著者は次のように言いました:

このフィールドの通常の値 (オプションが存在しない場合) は 5 です。

通常の値は 5 です。上の図のフィールドには 4 桁しかありませんか?わかりにくいです。原文全文はこちらです:

ヘッダーの長さは、オプションを含むヘッダー内の 32 ビット ワードの数です。これは 4 ビットのフィールドであるため、ヘッダーが 60 バイトに制限されます。この制限によって一部の値が制限されることがわかります。レコード ルート オプションなどのオプションは、現在は役に立ちません。このフィールドの通常の値 (オプションが存在しない場合) は 5.

です。

階下に写真を追加しました



みなさん、ありがとうございます

-----解決策--------------------------------
この図は非常に明確ではありませんか? 上から下まで 7 行ありますが、通常は最初の 5 行のみが使用されます。つまり、このフィールドの通常の値 (オプションが存在しない場合) は 5 です。
1 行は 32 ビット、つまり 4 バイト、4X5 = 20 バイトです。
彼が言うヘッダーの長さは、最初の行の 2 番目の領域を指します。 4 バイトは IP ヘッダー全体の長さを表し、最大は 1111 (10 進数で 15) です。1 行は 4 バイトであるため、最大は 15 * 4 = 60 バイトのみです。
------解決策---------
ビットとバイトの違いに注意してください
ビットバイナリビット
バイトバイト
1バイト = 8ビット
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。