少し前までは通信プロトコルに関する作業がほとんどでしたが、プロトコル関連の作業が深化するにつれ、関連するデータパケットの解析に多くの作業時間が取られるようになりました。データパケット解析の結果、IPプロトコルの内容が大学時代に教師に返却され、関連知識が完全に失われていたことが判明したため、本記事は当該IPプロトコルを学び直すための復習記事といえる。 。
- IPv4プロトコルの詳しい説明
- IPv6プロトコルの詳しい説明
- IPv4 IPv6 パケットの比較
1.IPv4
- IPv4 プロトコルの概要
- IPv4アドレスの数
- IPv4プロトコルの特徴
- IPv4パケット構造
- IPv4パケットの最大長
1.1 IPv4 の概要
IPv4(Internet Protocol version 4)
これは、インターネット プロトコルの 4 番目の改訂版であり、このプロトコルの最初の広く導入され使用されたバージョンです。これは1981 年 9 月に IETF によって発行されたRFC791に記載されており、一種の面向无连接的协议
「はい」です在使用分组交换的链路层(如以太网)上运行
。尽最大努力交付数据包
ただし、データ送信に関しては、IPv4 プロトコルでも可能です不能保证所有数据包能够成功到达目的地,或者按照正确的顺序到达,这些方面由上层的传输协议(如TCP协议)处理
。
1.2 IPv4アドレスの数
IPv4 プロトコル使用32位(4字节)地址
、そのアドレス空間为4,294,967,296(2^32)个
。これらのアドレスの一部は、プライベート ネットワーク (約 1,800 万のアドレス) やマルチキャスト アドレス (約 2 億 7,000 万のアドレス) などの特定の目的のために予約されており、インターネット ルーティングに使用できるアドレスの数が減少します。
アドレスがエンドユーザーに割り当てられるにつれて、IPv4 アドレスの枯渇の問題はますます深刻になっています。では、機密ネットワーク、クラスレス ドメイン間ルーティング、およびネットワーク アドレス変換に基づくアドレス構造の再構築により、アドレスの枯渇が遅くなります2019年11月26日,全球近43亿个IPv4地址已分配完毕
。
IPv4 アドレスの数に制限があるため、唯一の長期的な解決策である IPv6 の導入が促進されました。
IPv6使用128位地址空间
により、より多くのアドレスが提供されるだけでなく、セキュリティとパフォーマンスも向上します。IPv6 の普及には時間と労力がかかりますが、IPv4 アドレスの不足を解決する主な方法となっています。
1.3 IPv4プロトコルの特徴
面向无连接
:
IPv4 はコネクションレス型プロトコルであり、各データ パケットは独立しており、データ パケットの送信には接続状態を確立および維持する必要がありません。これにより、IPv4 データ パケットの送信速度は速くなりますが、データ パケット送信の信頼性とセキュリティの課題も増大します。分组交换
:
IPv4 プロトコルは、パケット スイッチング技術を使用して、データを一連の小さなデータ パケットに分割して送信します。各データ パケットには、宛先アドレスや送信元アドレスなどの必要な制御情報が含まれているため、データ送信がより効率的かつ柔軟になります。同時に、IPv4 プロトコルは、TCP、UDP など、さまざまなデータ伝送要件に適応できるさまざまな伝送プロトコルもサポートしています。简单、可靠、稳定
:
IPv4 プロトコルの設計は非常にシンプルで信頼性が高く安定しており、インターネットやローカル エリア ネットワークなどのさまざまなネットワーク環境で広く使用されており、優れた互換性と安定性を備えています。地址格式
:
IPv4 アドレスは 32 ビットの 2 進数で、通常はドット付き 10 進表記で表され、4 つのセグメントに分割され、各セグメントは 0 ~ 255 の整数を取ることができます。IPv4アドレスの不足が問題となり、IPv4アドレスの不足を軽減するためにプライベートアドレスやネットワークアドレス変換などの技術が導入されました。安全性
:
IPv4 プロトコルのセキュリティは低く、IP スプーフィングやデータ パケット偽造などのさまざまなネットワーク攻撃に対して脆弱です。したがって、IPv4 プロトコルのセキュリティを向上させるには、通常、ルータやファイアウォールなどのネットワーク セキュリティ デバイスでプロトコルを強化し、保護する必要があります。
1.4 IPv4 パケットの構造
IPv4 パケットの最大長は、65,535字节
IP パケット内のフィールドによって決まります16位总长度
。次の図は、IPv4 パケットの構造を示しています。
版本(Version)
:
Occupied は4比特位
、IP プロトコルのバージョン番号を示します。IPv4 の値は 4 です。首部长度(Internet Header Length)
: IP ヘッダーの長さを示す
Occupied 。ヘッダーの長さは、ヘッダー内の4比特位
32 ビット ワード (つまり、単位は 4 バイト) の数を示します。4字节
このフィールドの最小値は 5 (2 進数 0101) で、 と同等です5*4=20字节
。10 進数の最大値は 15 で、これは と同等です。15*4=60字节
服务类型(Type of Service,TOS)
:
Occupied は8比特位
、IP パケットのサービス タイプを示し、QoS (Quality of Service) やフロー制御などのパラメータを指定するために使用されます。总长度(Total Length)
:
占有16比特位
。IP ヘッダーとデータ部分を含む IP データグラム全体の長さをバイト単位で示します。このフィールドの最小値は 20 (ヘッダー 20 バイト + データ 0 バイト)、最大値は 2^16-1=65,535 です。标识(Identification)
:
占有16比特位
。このフィールドは主に、メッセージのすべてのフラグメントを一意に識別するために使用されます。フラグメントは必ずしも順番に到着するとは限らないため、再組み立て時にフラグメントが属するメッセージを知る必要があります。データグラムが生成されるたびに、カウンタは 1 ずつ増分され、このフィールドに割り当てられます。标志(Flags)
:
占有3比特位
、IP フラグメンテーションのステータスを識別するために使用されます。- ビット 0: 予約済み、0 でなければなりません。
- ビット 1: 断片化は禁止されています (断片化禁止、DF)。断片化は DF=0 の場合にのみ許可されます。
- ビット 2: 追加フラグメント (MF)、MF=1 はさらにフラグメントがあることを意味し、MF=0 はそれが最後のフラグメントであることを意味します。
分片偏移(Fragment Offset)
:
占有13比特位
、元のデータグラムに対するフラグメントのオフセットを示すために使用されます。生存时间(Time to Live)
:
Occupied は8比特位
、データグラムがネットワーク内で通過できるルーターの最大数を示し、ネットワーク内でデータグラムが無限ループするのを防ぐために使用されます。协议(Protocol)
:
Occupied は8比特位
、TCP、UDP、ICMP など、データグラム内のデータ部分で使用されるプロトコル タイプを示します。校验和(Header Checksum)
:
占有16比特位
、送信中に IP ヘッダーにエラーがあるかどうかを検出するために使用されます。源地址(Source Address)
:
占有されており32比特位
、データグラムの送信者の IP アドレスを示します。目标地址(Destination Address)
:
占有されており32比特位
、データグラムの受信者の IP アドレスを示します。选项(Options)
追加のヘッダー フィールドはオプションで宛先アドレスの後に続きますが、これはあまり使用されません从1到40个字节不等
。如果首部长度大于5,那么选项字段必然存在
。
1.5 IPv4 パケット長
IPv4 パケットの最大長は、65,535字节
IP パケット内のフィールドによって16位总长度
決まります。このフィールドの最大値は です65535,因为它是一个16位无符号整数,所以IP报文的最大长度不能超过该值
。
実際の状況では、IP报文的长度
通常会受到网络设备(如路由器、防火墙等)和网络链路的限制
、さらにネットワーク送信の存在によりMTU(Maximum Transmission Unit)的限制
、 、したがって、实际上能够传输的最大数据长度通常不会超过MTU值
が一般的に発生することに注意してください。1500个字节左右
实际传输的IP报文长度可能会比最大长度小得多
ネットワークトランスポートMTU(Maximum Transmission Unit)大小并不是固定的
、それは です大小取决于底层网络传输协议和网络设备的配置
。ネットワーク伝送プロトコルやデバイスが異なれば、MTU サイズの制限も異なる場合があります。
以太网
これは、最も一般的なネットワーク伝送プロトコルの 1 つですMTU大小通常为1500字节
。イーサネット上で送信されるデータ パケットが 1500 バイトを超える場合、複数の小さなブロックに分割されて送信されます。他のネットワーク伝送プロトコルの MTU サイズは異なる場合があります。たとえば、PPP プロトコルの MTU サイズは通常 1480 バイト、ATM ネットワークの MTU サイズは通常 48 バイトです。
さらに、MTU はネットワーク デバイスの構成にも影響されます。たとえば、ルーターやスイッチなどのネットワーク デバイスは、MTU サイズを構成することでネットワーク伝送効率を最適化し、遅延を減らすことができます。実際のアプリケーションでは、ネットワーク伝送の安定性と効率を確保するには、特定のネットワーク環境と要件に応じて MTU サイズを設定し、必要な最適化と調整を行う必要があります。
二、IPv6
- IPv6 プロトコルの概要
- IPv6アドレスの数
- IPv6プロトコルの特徴
- IPv6パケット構造
- IPv6ペイロード長
2.1 IPv6 の概要
IPv6(Internet Protocol version 6)
为了解决IPv4地址枯竭问题
IPv4 は、主に IPv4 に多くの点で改良が加えられたインターネット プロトコルの最新バージョンであり、1998 年 12 月に発行されたRFC2960によって定義されています。
IPv6的设计目的是取代IPv4
ただし、IPv4 は依然として長い間、インターネット トラフィックにおいて支配的な地位を占めており、IPv6 の使用はゆっくりと増加しています。2022 年 4 月には、IPv6 経由で Google サービスを利用するユーザーの割合が初めて 40% を超えると予想されます。
IPv6 は 1994 年に IETF によって IPv4 の次世代標準として指定されましたが、初期のものを書き換える必要があるため、路由器
世界中防火墙及相关应用程序
で IPv6 を使用して展開されているネットワーク サービスは IPv4 に比べて比較的少数です技术上仍以双架构并存居多
。
2.2 IPv6アドレスの数
IPv6 アドレスの全長は で128比特位(16字节)
、分为8组(每组2个字节)
各グループは4个十六进制数
コロンで区切られた形式で表現されます。例えば:FC00:0000:130F:0000:0000:09C0:876A:130B
IPv6地址
使用128位(16字节)
表現のため、その可以支持约3.4×10²³(2^128)个唯一地址
。この数は、今後数十年間のインターネットの開発ニーズを満たすことができる IPv4 アドレス空間 (43 億アドレス) よりもはるかに大きいです。IPv6 アドレス空間の巨大なサイズにより、より多くのデバイスがインターネットに接続できるようになるだけでなく、ネットワークのセキュリティとパフォーマンスも向上します。
2.3 IPv6プロトコルの特徴
更大的地址空间
:
IPv6 アドレスは 128 ビット長で表され、約 3.4×1023 (2^128) 個の一意のアドレスをサポートできます。これは IPv4 アドレス空間 (43 億アドレス) よりもはるかに大きく、開発ニーズを満たすことができます。今後数十年のうちにインターネットが普及するでしょう。改进的寻址和路由机制
:
IPv6 プロトコルでは、マルチキャスト アドレッシング、エニーキャスト アドレッシング、モバイル IPv6 などの新しいアドレス指定およびルーティング メカニズムが導入され、ネットワーク ルーティングがより効率的かつ柔軟になります。简化的头部结构
:
IPv6 プロトコルのヘッダー長は 40 バイトに固定されており、IPv4 ヘッダー構造よりも単純で、ネットワーク データ送信効率を向上させることができます。可选的扩展首部
:
IPv6 では、多くのオプションの拡張ヘッダーが定義されています。これにより、IPv4 よりも多くの機能が提供されるだけでなく、ルーターはホップバイホップ拡張ヘッダー以外の拡張ヘッダーを処理しないため、ルーターの処理効率も向上します。更好的安全性和隐私保护
:
IPv6 プロトコルは、IPsec プロトコルの必須サポート、アドレス プライバシー拡張など、より優れたセキュリティとプライバシー保護を提供し、ネットワークとユーザーのプライバシーを効果的に保護します。更好的流量控制和服务质量
:
IPv6 プロトコルでは、フロー制御とサービス品質 (QoS) メカニズムが導入されており、ネットワーク トラフィックをより適切に管理し、さまざまなサービス品質を提供してユーザー エクスペリエンスを向上させることができます。
2.4 IPv6 パケットの構造
IPv6
データグラム首部长度
は固定的40字节
、IPv6 のすべての拡張ヘッダーが IPv6 データグラムのヘッダーに属するわけではなく、拡張ヘッダーとそれに続くデータ部分が結合されて になります有效载荷
。
版本号(Version)
:
Occupied4比特位
、パケットで使用される IPv6 プロトコルのバージョン番号を示すために使用され、6 に固定されています。流量类别(Traffic Class)
:
占有8比特位
。さまざまな IPv6 データグラムのカテゴリまたは優先度を区別するために使用されます。。流量标签(Flow Label)
:
職業、IPv6 は、インターネット上の特定の送信元から特定の宛先 (ユニキャストまたはマルチキャスト) への一連の IPv6 データグラム (リアルタイムのオーディオおよびビデオ データの送信など) であるフローの抽象的な概念を提案します20比特位
。流
同じフローに属するすべての IPv6 データグラムには、同じフロー ラベル (相同的流量标签可进行同样的数据优先级设定
) が付けられます。したがって、フロー ラベルはリアルタイムのオーディオおよびビデオ データの送信に特に役立ちますが、フロー ラベルは従来の非リアルタイム データにはあまり役に立ちません。负载长度(Payload Length)
:
占用16比特位
は、IPv6 パケット内のペイロード (Payload) の長さを示すために使用されます不包括IPv6头部的长度
。下一个报头(Next Header)
:
占用8比特位
は、TCP ヘッダー、UDP ヘッダー、ICMPv6 ヘッダーなど、IPv6 ヘッダーの後の次のヘッダーのタイプを示すために使用されます。跳数限制(Hop Limit)
:
占用8比特位
は、IPv4 の存続期間 (TTL) フィールドに似ており、パケットがネットワークを通過する最大ホップ数を制限するために使用されます。源地址(Source Address)
:
占用128比特位
は、送信者の IPv6 アドレスを示します。目标地址(Destination Address)
:
占用128比特位
は、受信側の IPv6 アドレスを示します。
2.5 IPv6 ペイロード長
关于 IPv6 有效载荷长度
:
- IPv6 メッセージのペイロードの長さは主に
Payload Length
フィールドによって決まり、Payload Length
フィールドは16比特位
ペイロードの長さ、つまり IPv6 ヘッダー (40 バイト固定) を除いた部分の長さを示すために使用されます。このフィールドが 16 ビットであるとすると、その最大値は2^16 - 1
、つまりです65,535字节
。 - ただし、IPv6 は
Jumbo Payload
と呼ばれるオプションもサポートしています。このオプションを使用すると、ジャンボ ペイロード オプションという名前の拡張ヘッダーでペイロード長を示すことができ、拡張ヘッダー内の 32 ビット (4 バイト) フィールドがペイロード長を示します。したがって、最大ペイロード長2^32 - 1
、つまり4,294,967,295
バイトに達する可能性があります。
IPv6有效载荷
最大長に達することはできますが、それによって伝送されるトランスポート層プロトコル データ (TCP、UDP など) は依然として4294967295字节
IPv6 ネットワークによって制限されます。MTU的限制
仍然需要遵循最大报文长度65,535字节的限制
3. IPv4 パケットと IPv6 パケットの比較
IPv6
このデータグラム首部长度
では、固定的40字节
すべての拡張ヘッダーが IPv6 データグラムのヘッダーに属しません扩展首部与其后面的数据部分合起来构成有效载荷
。
IPv6 アドレスの長さが 128 ビットに拡張されたため、IPv6 データグラムの基本ヘッダーの長さは 40 バイトに増加し、IPv4 データグラム ヘッダーの固定部分の長さ (20 バイト) よりも 20 バイト長くなります。 。
IPv4 パケットとの比較:
取消了首部长度字段
: IPv6 データグラムのヘッダー長は です固定的40字节
。取消了服务类型字段
: IPv6 データグラム ヘッダーのトラフィック クラスおよびトラフィック ラベル フィールドは、サービス フィールドを区別する機能を実現します。取消了总长度字段
: 代わりにペイロード長フィールドを使用してください。これは、IPv6 データグラムのヘッダー長が 40 バイトに固定されており、その後のペイロード長のみが可変であるためです。取消了标识、标志和片偏移字段
: これらの関数は、IPv6 データグラムのフラグメンテーション拡張ヘッダーに含まれています。把生存时间TTL字段改称为跳数限制字段
: こうすることで、名前と機能がより一貫したものになります。取消了协议字段
: 代わりに次のヘッダー フィールドを使用してください。取消了首部检验和字段
:ルーターのIPv6データグラム処理速度を高速化できます。取消了选项字段
: オプション関数を実装するには、代わりに拡張ヘッダーを使用します。
参考
IPv4 の定義:
https://en.wikipedia.org/wiki/IPv4
RFC791 IPV4:
https://datatracker.ietf.org/doc/html/rfc791
IPv6 の定義:
https://en.wikipedia.org/wiki/IPv4
RFC2460 IPV6:
https://datatracker.ietf.org/doc/html/rfc2460
=終わり=
この記事は「CODING Technology Pavilion」公式アカウントで公開したものですが、記事が参考になった場合は私の公式アカウントにも注目してください。