Zenn
📘

【ネットワーク基礎】IPパケットについて知ろう!

に公開

はじめに

ここまでで、データを相手に届けるためにはTCP/IPプロトコルを中心としたTCP/IPモデルがあり、データは必要なヘッダ情報を階層ごとに加え(カプセル化し)ながら相手に届けられることを理解してきました。
ここまでの流れをイラストで説明すると以下のようになります。
なお、https://xtech.nikkei.com/atcl/nxt/column/18/00780/052700001/ の記事がとてもわかりやすかったため、かなり取り入れています。よろしければこちらもご参照ください。

ざっくり流れ

アプリケーションのデータを切り分け、IPパケット(宛先)をつけて発送準備をする


宛先に基づいて、ネットワークを通り、相手に届ける

この流れでデータが送信され、相手に届けられますが、この間にも工程があります。
その点について、簡単に見ていきましょう。

IPパケットとは?

インターネット上でデータを運ぶための「デジタル小包」と考えることができます。
TCP/UDPなどの上位プロトコルから渡されたデータに、IPヘッダー(宛先情報など)を追加したもので、ルーターやスイッチによって目的地まで中継されます。
ルーターやスイッチは、手紙を相手に送る例でいうところの郵便局にあたります。

IPパケットの役割・流れ

重要な機能

宛先指定
送信先のIPアドレス(例: 203.0.113.5)を付与します。
これにより、相手先の住所をヘッダー情報として追加します。

経路選択(ルーティング)

中継地点であるルーターが、IPヘッダーを見て最適な経路を決定します。
TCP/IPにおけるルーターの役割は重要で、このルーティングを担っているのがIPプロトコルであることから、IPルーティングとも言われているようです。

フラグメンテーション(分割)
ネットワーク層(IP)では、IPアドレスを追加しIPパケットを作成します。
データリンク層のMTU(Maximum Transmission Unit:最大転送単位)を超えていない場合はそのまま送信されますが、超える場合はパケットを自動的に分割します。

※MTUとは、データリンク層(L2)ごとに決まる「1フレームで運べる最大サイズ」(一度で送れるデータサイズの上限のようなもの)のことです。
たとえば、イーサネット(Ethernet)の場合1500バイト(標準)、PPPoEの場合1492バイト(ヘッダー分が差し引かれる)、ジャンボフレームの場合9000バイト(特殊環境向け)と、あらかじめ送信できる上限が決まっています。

※各層で異なるデータの呼び方

実際にパケットを運ぶのは、配送手段である下位層(ネットワークインターフェース層)のフレームです。フレームという名前のコンテナに荷物が乗り切らなければ、いくつかの小分けにして運ぶしかありません。IPプロトコルは、送信時に、受け取り側が受信可能なフレームの大きさに合わせて、複数の小分けのパケットとして送り出します。受け取った側では、それをもとに再度組み立てられるように番号付けもされているのです。

この仕組みにより、IPパケットは、荷物の大きさに合わせて分割され、ルーティングという仕組みによって最適な経路を経由して送り届けられます。そして、届け先で復元が始まり、アプリケーションに届けられるのです。

まとめ

アプリケーションのデータはそのままではなく、必要な情報を付加して加工してから、ルーター・ネットワークを経由して相手に届けられます。
その過程でIPパケットが重要な役割を担っています。その点が理解いただければ幸いです。

最後までお読みいただき、ありがとうございました。

参考・画像引用元URL

https://xtech.nikkei.com/atcl/nxt/column/18/00780/052700001/
https://diveintocode.jp/blogs/Technology/depTcpIp
https://envader.plus/article/512
https://active.nikkeibp.co.jp/atclact/active/17/062200307/062900002/
https://www.network-engineer.info/network_beginner/そもそもipパケットとはなにか?/
https://www.cloudflare.com/ja-jp/learning/network-layer/what-is-mss/
https://xtech.nikkei.com/it/article/COLUMN/20051202/225628/

Discussion

ログインするとコメントできます