
TCPヘッダのチェックサム算出方法について
1.算出方法はIPヘッダと一緒か?
2.一緒なら
unsigned short CalcCheckSum(unsigned short*lpData,/* (in)チェックサム算出文字列の先頭アドレス */
intiDataLen)/* (in)チェックサム算出文字列長 */
{
unsigned longlCheckSum = 0;
while(iDataLen > 1)
{
lCheckSum += *lpData++;
iDataLen -= 2;
}
if(iDataLen)
{
lCheckSum += *(unsigned char *)lpData;
}
lCheckSum = (lCheckSum & 0xFFFF) + (lCheckSum >> 16);
lCheckSum = (lCheckSum & 0xFFFF) + (lCheckSum >> 16);
return((unsigned short)~lCheckSum);
}
でまちがいないか?
3.オプションが追加されるときはそこも算出対象になるのか?教えていただけないでしょうか?
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
参考になりました!
無事、プロトコルアナライザと同一のチェックサムを算出するプログラムを作ることができました。ありがとうございました。
No.2
- 回答日時:
チェックサムの計算はRFCで決められています。
以下をキーワードに検索するといいと思います。
RFC1071:Computing the Internet Checksum
RFC1141:Incremental Updating of the Internet Checksum
RFC1624:Computation of the Internet Checksum via Incremental Update
No.1
- 回答日時:
実際に作った事は無いのですが、手元の本を要約すると、TCPヘッダのチェックサムは、TCPヘッダの前に付く96ビットの擬似ヘッダ(始点、終点アドレス、プロトコル識別子、TCPのセグメント長)とTCPヘッダおよびデータを計算対象に含むとあります。
チェックサムの計算方法は、「1の補数の和」の「1の補数」とあるのでIPと同じみたいです。
回答ありがとうございます。
擬似ヘッダ(始点、終点アドレス、プロトコル識別子)は検討がつくのですが、TCPのセグメント長ってIPヘッダの中にあるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リストコントロールの列幅を固...
-
関数ヘッダ?
-
[C#]ListView一覧表示時の幅設...
-
VBAでExcelのヘッダーに文字列+...
-
Cookieを用いてのセッション管理
-
月の第一週とは
-
エクセルで毎月第2週日の水曜日...
-
エクセルで相対パスの書き方を...
-
DBを10件毎に表示ページング...
-
週2回のペースって だいたい何...
-
a.cgi → b.cgiへデータの受渡...
-
平日朝の国道246線混雑状況につ...
-
[Excel] ある日の曜日が当月の"...
-
毎週同じ曜日にラブホに行くと...
-
mt-check.cgiでForbiddenエラー...
-
SFTP自動化
-
Excelで第一〇曜日を求める方法...
-
webからroot権限のコマンドを実...
-
perlのrequireの動き方について...
-
C++からhtmlページを作る
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでExcelのヘッダーに文字列+...
-
携帯用のダウンロード配信
-
リストコントロールの列幅を固...
-
[C#]ListView一覧表示時の幅設...
-
SpreadDesignerの列ヘッダ
-
SSL環境でオートコンプリートを
-
URLでのリダイレクト?
-
VC++でCORBAを使用するには
-
LinuxでRTPヘッダを作りたいの...
-
関数ヘッダ?
-
Content-type: text/htmlが表示...
-
呼び出し元にデータを返す
-
クッキーの基礎的なことについて
-
AccessVBAで「このフィールドに...
-
HTTPヘッダの大きさ
-
htmlにアクセスしたときにperl...
-
メールをPDF化する際に、ヘッダ...
-
プロキシの制限について
-
EXCEL:ヘッダー日付を年号で?...
-
SSLで送られたhttpのヘッダ...
おすすめ情報