Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
IP パケットのチェックサムを計算して検証する必要があります (C でルーターを作成しています)。IP ヘッダーを表す構造体には 16 ビットのチェックサムがありますが、構造体の総ビット数は 16 で割り切れません。8 ビット不足です。
私の質問はこれです。一度に 16 ビットの構造体を読み取り、チェックサムを計算するためにビットの最後のセットをゼロで埋めますか?
ビット数が間違っていた場合は、データの最後に 0 ビットをパディングします。
ただし、IP はヘッダー フィールドを計算するため、常に16 ビットの倍数でチェックサムを計算します。TCP では、データの末尾に 0 の余分なバイトが必要になる場合があります。
http://en.wikipedia.org/wiki/IPv4_header_checksum