アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっております。
また質問させて頂きます。

TCP/IPモデルのアプリケーション層でヘッダが付加されるのか?されないのか?という質問です。
色んな教材、サイトを調べましたが、ヘッダがある派とヘッダが無い派が半々くらいでした。

ただし何故あるのか無いのかにまでに言及しているところは殆どなく

一番信憑性があったのが、
ヘッダは分割しなくてはならないから付加するのであって分割前にヘッダは付加されない

またアプリケーション層で出てくるヘッダとういうのは
メールやHTTPファイル等のソース本文に記載されてるヘッダ情報ではないのか?
というものでした。

実際に、アプリケーション層で扱われるヘッダは存在しますか?
何を指してヘッダと呼んでいますか?

教えてください。
宜しくお願い致します。

質問者からの補足コメント

  • HP製作やJavaやCでのプログラミング経験もあるのでソースのヘッダ情報とレイヤモデルのヘッダを混同はしていません。区別しています。

    手持ちの教材や専門サイトに公然とアプリケーション層にヘッダが付加されると書いてあり、
    ネットワークの学習を進めている上で、これは誤りではないのかと感じてきました。

    ですが、上述の通りある派と無い派が半々いること、
    また自分もその根拠に辿りついていないことから相談いたしました。
    宜しくお願いします。

      補足日時:2017/08/23 13:45

A 回答 (3件)

回答の前提として、


TCP/IP階層モデルにおけるアプリケーション層はこんな感じの層です。

1.
PDUで言えばペイロードのデータそのものです。
https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3 …
の、「インターネット・プロトコル・スイートの階層」の図の黄緑部分になります。

2.
プロトコルとしてはWebやメールなどのアプリケーションが扱うデータフォーマット、
接続手順などを規定するものになります。

3.
Ethernet、IP、UDPの層はOSが処理しますが、
アプリケーション層は、ブラウザやメールサーバのように
ユーザープロセスのアプリケーションが処理します。

4.
アプリケーション層のプロトコルは、例えばhttp、ftp、ntp、LDAP、SIP、POP、SMTP、RTPなどなどたくさんあります。
RFCで規定されている他に、自分でも定義できるので、
それこそ星の数ほどあります。
それぞれでデータフォーマットも接続手順も異なります。

5.
Web、メール、IP電話などといったサービスごとにプロトコルは違います。
(ただ、スマホのアプリケーションはほとんどhttpでなんでも扱うといったように
httpなどちょっと特殊なのはあるのですが)

以下から回答になります。
例えばメールやWebのアプリケーションで扱うデータを
HeaderとBodyと分けて使う場合の、Headerの部分をいいます。
例えば下記の「メッセージ構文」の内容が参考になるでしょう。
http://www.tohoho-web.com/ex/http.htm
ここでいうHeaderもBodyも先程の「インターネット・プロトコル・スイートの階層」の図では"黄緑部分"です。
RTPなどはTCP/IPの教科書などでよく見られる
IPやTCP、UDPのヘッダフォーマットと見た目が似ていますが、
これもヘッダ含めて全て黄緑部分"です。
http://www.geekpage.jp/technology/rtp/rtp.php

アプリケーション層のプロトコルはユーザで定義し放題であり、
オレ流アプリケーションのオレ流アプリケーション層プロトコルもあって問題なく
それらでは必ずしもヘッダがある必要はないのですが、
RFCなどで規定されている、皆で仕様を合わせて使う
アプリケーション層のプロトコルは
ほとんどのケースでヘッダがあると思って良いです。
通信を行うアプリケーションは送られてきたデータを
何かを取っ掛かりにして処理をしますが、
取っ掛かりを探す処理としては、"黄緑部分"の先頭から何バイト目とか
(RTPのような"黄緑部分"がバイナリフォーマットの場合)、
"To:"などの文字列を検索する(Mailやhttpのような
テキストフォーマットの場合)などがあります。
その取っ掛かりの集まりがヘッダです。
先頭に置くのはそのほうが処理しやすく効率がよいからです。

ただ、昔から様々なアプリケーションプロトコルが作られ、
そのスタイルが踏襲されているからであって、
取っ掛かりを"黄緑部分"の最後尾に置くようなプロトコルは
有りえます
(処理がめんどくさいし、わざわざ最後尾に置く理由はないですが)。

以上、参考になりますでしょうか。
    • good
    • 1
この回答へのお礼

いつもありがとうございます。
感動しました。
どのテキストや参考サイトよりも
正確で適切でした。
なるほどそうだったのかと理解ができました。
自分はmakunanaman様にテキスト作ってもらいたいと思いました。

お礼日時:2017/08/24 09:37

TCPヘッダと、アプリケーションで付加されるヘッダ(メールヘッダなど)と混同されている気がします。


アプリケーションで使われるヘッダは、TCPデータの中ではペイロードに含まれます。
TCPヘッダはこれらとは全く別ものでトランスポート層で付加され、アプリケーション層で感知されるものではありません。

例えばメールヘッダといえば、Return-PathとかContent-typeとかSubjectなどの部分になります。
メールヘッダ、HTTPヘッダで検索すれば詳細が見つかると思います。
# 的外れでしたらご容赦ください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
アプリケーションヘッダが別にあるのか無いのかが気になっていたので

教材や参考サイトを使って学習しているんですけど
アマゾンでお勧めの教材にアプリケーション層でアプリケーションヘッダが付加されるとイラスト付きで掲載されていたり
某有名PC雑誌サイトでも同じ様に書かれていていました。
なので混乱してしまい確認したかったのです。

お礼日時:2017/08/24 09:48

TCPヘッダのことを言っているのであれば


アプリケーション層では付加されないです

質問者さんが言っている通り
ヘッダというのがなにを指しているかです
ヘッダという言葉だけなら色々なものを指しますが
アプリケーション層に関係するヘッダは無いと私は認識してます
TCPヘッダ、IPヘッダ、イーサネットヘッダなどなら分かるのですが
アプリケーションヘッダといわれる物は聞いたことありません

私も今調べてみましたが
そこに関する誤記、誤解が多いらしく
アプリケーション層のヘッダはおそらくメールヘッダとか
そういった各ソフトウェアやプログラムに関係するヘッダのことかと思います
    • good
    • 0
この回答へのお礼

ありがとうございます。
統一されていないので判断が難しいですね。
有名なPC雑誌ではしっかりヘッダは付加されると案内されていましたから
迷ってしまいました。

お礼日時:2017/08/24 09:33

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