tcp/ip入門書を読み終えて第3章

今回は通信の処理と流れについて復習します。
メールの送受信の流れですかね。

マスタリングTCP/IP入門

この本オススメです。

では、復習始めます。

各階層で送信されるデータはヘッダと呼ばれる情報がつく。
ヘッダには送信元、宛先、プロトコルの情報が入っている。
パケットはプロトコルが使うヘッダと上位層が使うデータで構成している。
これは、どういったやり取りでデータを届けたり処理内容が入っていたりするもの。
以下パケットの送信処理から見ていこうと思います。

1、アプリケーションの処理

送信するとTCP/IPによる通信が開始する。
アプリケーションのプログラムによってUTF-8などのルールに基づいて符号化され文字化けしないように変換する。
この役割はプレゼンテーション層相当の機能。
TCPにコネクションの確立を指示をして確立したら、下位層にデータが渡される。これはセッション層にあたる

2、TCPの処理

信頼性のあるデータ転送をする。
アプリケーションから渡されたデータの前にTCPヘッダが付与される。
このヘッダには送信元と宛先のアプリケーションを識別するためのポート番号、そのパケットのデータが何バイトなのか示すシーケンス番号、データが壊れてない保証をするためのチェックサム、入っている。
このヘッダがついたデータがIPに送られる。

3、IPの処理

TCPから送られてきたTCPヘッダの前にIPヘッダが付けられる。
IPヘッダには宛先のIPアドレス、送信元のIPアドレス、TCPかUDPどちらかなど情報が含まれる。
IPパケットが完成すると、ルーティングテーブルを参照してパケットを受け渡すルーターやホストを決定し送信する。
通信機器のMacアドレスがわからない場合はARPを使いMACアドレスを調べて分かったらイーサネットに送信する。

4、ネットワークインターフェースの処理

以上で作られたパケットが物理層を渡って相手に届く。
FCS(Frame Check Sequence)が送信処理中に付与される。
これはノイズなどでパケットが破壊されたことを検知する。

メールの送信は以上。
次は受信側の処理の流れについて復習します。

5、ネットワークインターフェースの処理

パケットを受け取ったホストは、宛先のMACアドレスが自分宛かどうかまず調べる。違うときはパケットを破棄する。
合っていたらイーサネットタイプフィールドを確認してイーサネットプロトコルが運んでいるデータの種類を調べる。IPならIPを処理するルーチンに他のプロトコルだったらそのプロトコルのルーチンにデータを渡す。
処理できないプロトコルの値の場合はデータを破棄する。

6、IPの処理

IPのルーチンにデータが渡って宛先のIPアドレスが自分のホストのIPアドレスだったら受信して上位層のプロトコルを調べる。
TCPかUDPどちらか処理ルーチンにIPヘッダを除いたデータを送る。
ルーターの場合、受信するIPパケットの宛先は、ほとんど自分宛ではない為、ルーティングテーブルから次に送るホスト、ルーターを調べて転送することになる。

7、TCPの処理

TCPの場合、チェックサムを計算してデータの破損がないか、データが順番通りに受信しているか確認している。データがちゃんと届いていた場合、確認応答をホストに返す。届かない場合、応答するまで繰り返し送信する
ポート番号を調べてアプリケーションを特定して、データが正しい場合、識別したアプリに送信される。

8、アプリケーションの処理

受信側はそのままデータを受け取ることになる。
相手側のメールボックスが存在しない場合、送信元のアプリケーションにエラーを返す。
受信したらHDDなどの記憶媒体に保存され、メッセージが保存されたら、処理が終了したことをアプリに伝える。保存されない場合はエラーがをアプリに伝える。

受信は送信の逆かと思いますけど、データを次に渡すときの事をルーチンって言うんですかね。
このやりとりを経てようやくメッセージが表示されるんですね。
大変。

頭で理解するには難しいです。

SNSの場合は
通信会社でIPアドレスが設定され、指定のサーバーでログインすると蓄積された情報が表示される仕組みだそう。

これもTCP/IPの仕組みが利用されているみたい。

色々興味深いですね。

時間があれば次回も書いていきたい。
次回はデータリンクについて復習していきたい。

以上。




この記事が気に入ったらサポートをしてみませんか?