プロが教える店舗&オフィスのセキュリティ対策術

ネットワークの教科書を読んでおり、コンピューター間のデータ送受信におけるプロトコルの役割について質問があります。

メールの送受信を例にとると、
送信側が、ある宛先にあるメールのデータを送信する際、
①アプリケーション層で、そのメールのデータに、件名の部分と文章の部分とを区別するように、SMTPヘッダでラベリングする。
②次にトランスポート層で、メールのデータを送信に適当なサイズに分割し、各断片に正しい順番をTCPヘッダでラベリングする。
また、各データ片がどのアプリケーションで開くデータなのかを分かるようにUDPヘッダでラベリングする。
③次にインターネット層で、宛先の情報が含まれたIPヘッダで宛先情報をラベリングし、送信する。

という流れをとると、教科書に書いてあったのですが、
教科書の表現ではあたかも、TCPやUDPなど、プロトコル達(及び各層)そのものが上のアクションの主体みたいに書かれているのですが、
プロトコルそのものは、
あくまで「データの送受信における各アクションの内容や手順を定めた規格」であって、
実際にアクションを起こすのは、コンピューター上の別の"何か"なのだと思うのですが、
この考えで合っていますでしょうか?
もしそうであれば、上の一連のアクションの主体となるものは何なのでしょうか?
例えば、IPヘッダの付加、であれば、メール送信画面でで宛先にアドレスを入力することが、それに相当するのでしょうか?

また、TCPは「送信相手が受信できる状態にあるか否かを調べる」役割があると書いてあったのですが、上の流れだと、相手の宛先情報であるIPヘッダがデータにラベリングされるのは、トランスポート層を過ぎた後であって、調べようがないと思うのですが、どの時点で相手が受信出来るか出来ないか判断するのでしょうか?

できる限り、初学者にも分かりやすく教えていただけると幸いです。
宜しくお願いいたします。

A 回答 (3件)

データは容量によって複数個に分けられます。


*パケット
ネット環境の有る世界中へバラバラに送信します。
受ける時に、順序を並べて保存します。
私もこれくらいしか理解できていませんが、特に困ったことはありません。
数年前に、NHKの高校口座で見ました。
    • good
    • 0

プロトコルの下位層は上位層に対して、下位の通信機能を


提供するための、いくつかのインターフェースを提供するもの
と考えたほうが良いでしょう。

例えば TCP の場合、「接続確立」、「相手先が受信可能か確認」、
「送信」などの機能が提供されています。

例えば SMTP電文を送信する場合、アプリケーション層は

1) 接続先を指定してTCPに「接続確立」を指示し、
「接続」(ソケット)を受け取る
2) 「接続」をチェックし「相手先が受信可能か確認」する。
3) TCPに対しSMTP電文の「送信」を指示する

というような手順を踏みます。
#本当はもっと複雑

つまり、「相手先が受信可能か確認」はSMTP電文の「送信」前に
行う作業です。TCPヘッダの作成は「送信」の後ですが、
「接続の確立」の際に相手先のIPアドレスなどはTCPに
知らされているので「相手先が受信可能か確認」は問題なく
行えます。
#このあたりの仕組みは専門書を見てください。
要はプロトコルとは上位層からのデータ送受信がすべてでは
ないということです。

>プロトコル達(及び各層)そのものが上のアクションの主体
>みたいに書かれているのですが

そうとらえて問題ないでしょう。実装上は様々なやり方が
あると思いますが(割り込みやプロセスやスレッド等々)
気にしてもしょうがないです。
    • good
    • 0

必ずしも順序ではなくて、各層で、各層に関する責任を負うということです。



SMTPのデータ部分に、TCPヘッダ、IPヘッダ、ETHERNETヘッダをつけて、送り出したあと、相手から応答がなかった場合、UDPなら送りっぱなしですが、TCPレベルでは着信確認が行われるので、一時的な通信不良はTCP層レベルの再送処理で回復されますが、それでも回復しない場合、SMTPレベルの再送処理はメールサーバレベルで実現されます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!