
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- ネットワーク IPアドレスの範囲ってどうやって求めるんですか? 2 2023/01/05 01:37
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- 数学 小学生がたった1日で19×19までかんぺきに暗算できる本、のおみやげ算。数学的に言うと何? 3 2023/04/07 09:35
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- その他(コンピューター・テクノロジー) 「プロトコル」の定義について 5 2023/04/16 13:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AccessVBAで「このフィールドに...
-
リダイレクト
-
バイナリファイルのアップロー...
-
ヘッダのinclude順
-
HTTPヘッダの大きさ
-
関数ヘッダ?
-
VBAでExcelのヘッダーに文字列+...
-
セットされているCookieの内容...
-
ルータでのMTU、MSS設定値の検...
-
リストコントロールの列幅を固...
-
[C#]ListView一覧表示時の幅設...
-
SpreadDesignerの列ヘッダ
-
月の第一週とは
-
エクセルで相対パスの書き方を...
-
エクセルで毎月第2週日の水曜日...
-
週2回のペースって だいたい何...
-
[Excel] ある日の曜日が当月の"...
-
c言語の質問です。 ある月のカ...
-
VBA。複数のChangeイベントをま...
-
毎○曜日って、使いますか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[C#]ListView一覧表示時の幅設...
-
VBAでExcelのヘッダーに文字列+...
-
SpreadDesignerの列ヘッダ
-
リストコントロールの列幅を固...
-
関数ヘッダ?
-
ヘッダのinclude順
-
EXCEL:ヘッダー日付を年号で?...
-
perlでHTTP Request Headersの...
-
メールをPDF化する際に、ヘッダ...
-
TCPヘッダのチェックサム算出方法
-
HTTPヘッダの大きさ
-
http://から始まるファイルの更...
-
ルータでのMTU、MSS設定値の検...
-
file_get_contents でリダイレ...
-
レスポンスヘッダとエンティテ...
-
ping送信時のヘッダについて
-
HTTPヘッダの取得方法
-
Thunderbirdのフィルタについて
-
ftpでのネットワークバイトオー...
-
perl5について
おすすめ情報