PPPの誤り制御について
はじめて書き込みさせて頂きます。
日経ネットワークではいつも勉強させて頂いております^^;
タイトルにもあるようにPPPの誤り制御について教えてください。
イーサネットの場合LANスイッチはフレームを受け取るとFCSによるエラーチェックを行い誤りがあるとその時点でフレーム破棄を行うと認識しております。(TCPのような再送要求は当然おこなわないと思っておるのですが・・・どうなんでしょう?)PPPフレームもFCSフィールドをもっているので PPPフレームを受け取ったルータはエラーチェックはすると思っているわけですが、そこでエラーが見つかった場合はイーサネットの場合と同じようにパケットを捨てて終わりなのでしょうか?その辺が気になっていていろいろ調べてみたところ以下のような記事がありました。
+++++以下日経NW 2000.7号 P136 図8 問1のイの解説 より抜粋++++
PPPはHDLC手順に類似したフレーム構成をしており、FCS領域を持っている。
したがって、この領域で誤り検出を行い、再送制御を行う。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ここには再送制御を行うと書いてあります。
ということはPPPのレベル(Layer2レベル)でフレームのエラーチェックを
行い、誤りを発見すると再送要求をするということになるのでしょうか?
もしそうだとすると送り側のルータは、相手側のルータがきちんとPPP
フレームを受け取ったという連絡がくるまで、すでに送り出したフレームを
バッファにためておかなければならないと思ったりします。
PPPはかならず相手がフレームを正しく受け取ったという合図がくるまで
そのフレームを送り手側が保持しておかなければならないという約束みたい
なものがあるのでしょうか?
ぜひ回答をお願いしまして長年のもやもやを振り払って頂きたいとおもいますので
よろしくお願いいたします。
コメント
通常のデータパケット転送では再送しません
しまさん,はじめして。
PPPのデータパケット転送動作はイーサネットと同じで,
誤りを検出したらパケットを棄てるだけです。
こういう疑問が起こったら,次のように考えてみるとよいでしょう。
もし,誤りの再送を行うのであれば,TCPのように,
受信側から送信側に,受信確認や誤り発生を知らせるメカニズムが必要なはずです。
そう考えてPPP関連のRFCなどを読んでみると,
(PPPは複雑で,PPPとNCPを組み合わせて使うので両方調べなければいけませんが。)
そのようなメカニズムはどこにも書いていないことがわかります。
そのメカニズムがなければ再送は不可能ですから,
エラーを検出したらパケットを棄てるだけなのだという結論になるはずです。
なお,PPPにはデータパケットの送受信を始める前に,
アドレスなどを交換するフェーズがあり,
そこでは,相手から応答がなかったら情報を再送することになっています。
でも,これはデータパケットを送る動作ではありませんから,
通常のデータ転送では,再送しないと理解していいと思います。
Re 通常のデータパケット転送では再送しません
戸根様
こんばんわ。先日質問させていただきましたしまともうします。
すばやく、そして明快な回答ありがとうございました。
今度RFCよんでみます^^;
PPPについてはこれですっきりしたのですが、もう一点だけ
便乗質問させてください。
そもそも私が、もしかするとPPPは再送制御するのかなと疑いだしたのは
先に抜粋しました、日経ネットワークの記事の他にもうひとつありまして
それは以下のような文章です。
+++++++++++以下e-wordsのサイトより抜粋+++++++++++++++++++++
データリンク層 【data link layer】
読み方 : データリンクソウ
別名 : レイヤ2, 第2層
OSI参照モデルの第2層に位置し、ネットワーク上で直結されている機器同士
での通信方式を定めたもの。電気信号の誤り訂正や再送要求などがこの層で行
われる。PPPなどの規格がデータリンク層に相当しており、スイッチングハブな
どの製品がデータリンク層をカバーしている。
URL
http://e-words.jp/w/E38387E383BCE382BFE383AAE383B3E382AFE5B1A4.html
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
これはPPPの解説ではなくデータリンク層の解説なのですが、ここに『電気信号の
誤り訂正や再送要求などがここの層で行われる』とあります。
この文章の意味はどのように捉えればよいのでしょうか?
【私の解釈(かなり無理がありますが・・・^^;)】
・電気信号の誤り訂正=FCSによるエラーチェック?
(誤り訂正というと誤りを見つけてそれを訂正する作業
まで含むという感じがしますが・・)
・再送要求=PPPはもっていないが、その他のデータリンク層プロトコルが持って
いる機能?
(X.25におけるLAPBは再送制御手順をもっていたと記憶しています。)
戸根様だったらこの文章をどのように解釈し理解するのかをご教授願えたら幸い
です。
よろしくお願いいたします。
PPPのHDLCと本来のHDLCはイコールではありません
データリンク層というところに話を広げるとややこしいことになりますね。
データリンク層という言葉は,ご存知のようにOSI参照モデルで登場した言葉ですが,
ISOプロトコルという形で実装するときに採用されたものはHDLCでした。
つまり,データリンク層の実体は,当初は,HDLCだったということです。
(後からLANがデータリンク層に追加されますが,その話題は省略します)
で,HDLC自身には誤りの検出と回復(誤り発生時に再送するということ)
の両方がありますから,e-wordsの解説は正しいわけです。
ところがPPPはHDLCをそのまま使っているというわけではなく,
単にHDLCのフレームフォーマットを流用しているに過ぎません。
元々のHDLCのヘッダには,
誤り回復用に受信確認などの情報を格納するフィールドがあるのですが,
PPPはそのフィールドを使っていないんです。
だから,PPPのHDLCと元々のHDLCはイコールではありません。
この辺は確かにややこしいのですが,
しまさんが混乱している理由はもう一つあるように思います。
データリンク層という言葉は,HDLCやLANといった通信システムが
ネットワーク全体のどこに位置付けられるかを現す言葉であり,
OSI参照モデルは,その役割と機能のガイドラインを示してはしますが,
参照モデル自身は実体のあるプロトコルではありません。
つまり,HDLCやイーサネットのような,具体的な仕様があるプロトコルではないのです。
ところが,それを実体のある通信システムの機能と見なしているので,
余計な疑問が沸いてきているのではないでしょうか。
OSI参照モデルとISOプロトコルは失敗したプロジェクトであり,
今は誰も使っていない旧式の考え方ですから,
もう,忘れた方がよいように思うんですけどねえ。
皆さんどう思います?
Re PPPのHDLCと本来のHDLCはイコールではありません
戸根様
こんばんわ。たびたびの回答ありがとうございます。
確かにその辺非常に混乱しておりました。
(体系だてて覚えていない証拠ですね、おはずかしい・・^^;)
やはり基本事項を抑えておかないとだめだなぁと最近つくづく
思っておりますので、その辺もういちど勉強しますTT。
基本事項ってえてして強調されずにひょこっと書いてあったりして
見落としがちですが、そういところを抑えておかないとダメなんですよね^^;
今回ひとつの疑問が整理できたのでよかったです。
ありがとうございました。
また行き詰まったら質問させて頂きます。