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

通信エラーが発生し、
エラーが発生した時のパケットのTCPヘッダの
チェックサムが"FFFF"だったのですが
チェックサムで"FFFF"はありえるのでしょうか?

A 回答 (2件)

通信関係の規格は次で調べる事が出来ます。


http://www.rfc-editor.org/
==>Official Internet Protocol Standard RFCs
http://www.rfc-editor.org/rfcxx00.html
"TCP" search: RFC# 793

3.1. Header Format
"ffff" もありえます。
計算値が規格通りか、通常の正しく通信できた場合とエラーの場合と各々求めて確認してください。
    • good
    • 0
この回答へのお礼

"ffff"もありえるんですね!
ありがとうございます。

お礼日時:2010/03/17 09:46

これは、大昔から存在する、TCPのチェックサムに関する有名な問題です。



まず、TCPの仕様(RFC973)では、1. の方がおっしゃるように 0xffff というチェックサムはあり得ます。しかし、そのパケットについて、RFC793に従いチェックサム計算すると、計算の仕方によって 0xffff になったり、0x0000 になったりします。これは1の補数表現で、値0に限り 0xffff と 0x0000 の 2 つが存在するためです。つまり TCP の受信側は、チェックサム 0x0000 と 0xffff は同一視する必要があります。

多くのTCP実装では、自分が送信するTCPセグメントのチェックサムでは常に 0x0000 を生成するので、上記の事実を知らないで 0xffff をエラーとするものがいくつか存在するようです[1][2]。

[1] Juniperのファイアーウォール装置が、0xffffのチェックサムを不正パケットとみなす問題。Juniperはバグとして扱っています。
http://www.juniper.net/techpubs/software/managem …

[2] Solaris 10 の例。Solaris9までは チェックサム 0x0000 を生成していたが、Solaris 10 から 0xffff のチェックサムを生成するようになったため[1] のようなバグのある機器との通信で問題となるという指摘があり、従来通り0x0000 を生成するように修正した。
http://bugs.opensolaris.org/bugdatabase/view_bug …
    • good
    • 0
この回答へのお礼

大変参考になりました
ありがとうございます。

お礼日時:2010/03/17 09:46

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