コンピュータネットワークネットワーク層のIPデータグラム形式と断片化

IPデータグラムのフォーマット


IPデータグラムは、ヘッダーとデータで構成されます。

ヘッダーの最初の部分は20バイトの固定長であり、すべてのIPデータグラムに必要です。

ヘッダーの固定部分に続くのは、可変長のオプションのフィールドです。(オプション)

IPプロトコルは主に送信元アドレスから宛先アドレスにパケットを送信します。最も重要なことは送信元アドレスと宛先アドレスです。送信元アドレスと宛先アドレスはそれぞれ4バイトを占めます。

バージョン4ビット。IPV4かIPV6かを指定するために使用されます。

 このフィールドは8ビットを占有し、その機能はデータパケットにマークを追加し、ルーター側のマークで転送することです。これにより、特定のアプリケーションのトラフィック帯域幅が保証されます。

2バイトを占有し、全長はヘッダーとデータ部分を指し、データパケットの最大長は65535バイトです。ネットワークカードには通常、最大伝送ユニットMTUがあり、最大伝送ユニットは1500バイトです。つまり、ネットワークカードが受信できるデータパケットのサイズは1500バイトであり、ネットワークカードはフラグメント化する必要があり、各フラグメントはネットワークに追加されるレイヤーのアドレス。受信者がこれらのスライスを受信するときに、パッケージ化する必要があります。

バッグに組み立てられており、ロゴが入っていることをどうやって知ることができますか。

データパケットがフラグメント化された後、識別子は同じであり、受信側はいくつかのフラグメントの識別子が同じであることを確認します。したがって、正しくスプライシングする方法には、フラグメントオフセットが必要です。

 スライスオフセットは、このスライスの最初のバイトがスライス全体に含まれるバイト数を示すために使用されます。受信側はそれを受信した後、写真のオフセットに従ってスライスをパッケージに組み立てます。

スライスフラグが1の場合は、まだスライスが残っていることを意味し、0の場合は、後ろにスライスがないことを意味します。

IPデータグラムの断片化


データグラムの全長は3820バイト、データ部分の長さは3800バイト(固定ヘッダーを使用)であり、1420バイト以下のデータグラムフラグメントにフラグメント化する必要があります。

固定ヘッダーの長さは20バイトであるため、各データグラムフラグメントのデータ部分の長さは1400バイトを超えることはできません。

したがって、3つのデータグラム部分に分割され、データ部分の長さはそれぞれ1400、1400、および1000バイトです。

元のデータグラムヘッダーは各データグラムフラグメントのヘッダーとしてコピーされますが、関連するフィールドの値を変更する必要があります。

 フラグメント化する場合、ヘッダーがコピーされてからオフセットが計算され、内部のフィールドが変更されます。8バイトは1単位です。

シャードの識別子は同じであり、MF1はシャードの後ろにシャードがあることを意味します。シャーディング後、全長も変化します。

 

生存時間

最大値は255で、これはルーターの数に関連しています。コンピューターAはコンピューターBと通信します。AがコンピューターBにパケットを送信する場合は、ルーターを通過する必要があります。TTLが128であるとすると、TTLはルータがパケットを受信して​​転送する前に、最初に減少します.1に進み、再び転送に進むと、127になります。1回転送した後、存続時間の値は1つ減ります。3台のルーターが最終的にコンピューターBに到達した後、コンピューターBから見たTTL値は125です。

コンピューターから送信されるデータパケットには、システムに関連するデフォルトのTTLがあります。Windowsにはデフォルト値があり、Linuxにもデフォルト値があります。

2台のWindowsコンピューターが同じネットワークセグメントでpingを実行している場合、TTLは128です。これはルーターではないためです。中央にルーターがある場合は127であり、パケットが戻ったときに2つのルーターを通過する場合は次のようになります。 126です。

Linuxシステムの場合、デフォルトのTTLは64であるため、TTLの初期値は128または64のいずれかです。

 tracertは、通過したルーターの数を追跡できます。通常、50台のルーターなど、ルーターの数は多くありません。

C:\Users\12396>ping www.baidu.com

正在 Ping www.a.shifen.com [180.101.49.12] 具有 32 字节的数据:
来自 180.101.49.12 的回复: 字节=32 时间=15ms TTL=53
来自 180.101.49.12 的回复: 字节=32 时间=15ms TTL=53

180.101.49.12 的 Ping 统计信息:
    数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 15ms,最长 = 15ms,平均 = 15ms
Control-C
^C
C:\Users\12396>tracert www.baidu.com

通过最多 30 个跃点跟踪
到 www.a.shifen.com [180.101.49.12] 的路由:

  1     3 ms     1 ms     1 ms  172.17.0.2
  2     4 ms     9 ms    11 ms  115.196.12.1
  3   127 ms   127 ms    28 ms  61.164.23.172
  4     6 ms     5 ms     6 ms  183.129.250.141
  5    13 ms    13 ms    13 ms  202.97.33.157
  6     *       14 ms    14 ms  58.213.95.106
  7     *        *       17 ms  58.213.95.126
  8    11 ms    18 ms    12 ms  58.213.96.90

1と指定すると、コンピュータから送信されるデータパケットのTTLフィールドは1になります。ルータを介して1ずつデクリメントされると、0になるため、ゲートウェイはデータパケットを返し、TTL送信が期限切れ。 

C:\Users\12396>ping www.baidu.com -i 1

正在 Ping www.a.shifen.com [180.101.49.11] 具有 32 字节的数据:
来自 172.17.0.2 的回复: TTL 传输中过期。
来自 172.17.0.2 的回复: TTL 传输中过期。
来自 172.17.0.2 的回复: TTL 传输中过期。

TTLが2の場合、情報は2番目のルーターから返され、同様に3の場合、情報は3番目のルーターから返されます。-iを使用すると、パケットをトレースして、通過したルーターの数を確認することもできます。

C:\Users\12396>ping www.baidu.com -i 2

正在 Ping www.a.shifen.com [180.101.49.12] 具有 32 字节的数据:
来自 115.196.12.1 的回复: TTL 传输中过期。
来自 115.196.12.1 的回复: TTL 传输中过期。

180.101.49.12 的 Ping 统计信息:
    数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),
Control-C
^C

TTLの主な機能は、ループを回避することです。たとえば、ルーターAのデフォルトルートはBを指し、ルーターBのデフォルトルートはAを指します。このようなネットワークはループを形成します。TTL制限がない場合、データパケットがリンク上に存在することはありません。消えたため、データパケットのTTLがTTL制限を超えて使い果たされた後、データパケットは直接破棄され、ルータはTTLが使い果たされたことをクライアントに返します。

おすすめ

転載: blog.csdn.net/qq_34556414/article/details/123412823