亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 【請教】 checksum代碼中>>16的疑惑, 為了byte order ? [打印本頁]

作者: nine8    時(shí)間: 2010-08-10 23:45
標(biāo)題: 【請教】 checksum代碼中>>16的疑惑, 為了byte order ?
/* TODO: this depends on byte order */
        while (sum >> 16)
                sum = (sum & 0xffff) + (sum >> 16);

為指導(dǎo)為什么在計(jì)算的最后要判斷超出的高位? 其作用是?

checksum只要累加然后return 取反不是就可以了嗎?  即使有溢出超過16位,最后接收端check的時(shí)候也不會有影響吧?

沒怎么理解,請大家?guī)徒忉屜拢x謝
作者: yeying0506    時(shí)間: 2010-08-10 23:56
回復(fù) 1# nine8


    不知道你這里計(jì)算的是什么的checksum
IP, tcp, udp的checksum都是反碼求和,進(jìn)位要加到最后。
作者: nine8    時(shí)間: 2010-08-11 00:25
回復(fù) 2# yeying0506


    是ip和TCP, 哦,原來如此,在UNP沒看到有說要加進(jìn)位

  嘿嘿,謝謝
作者: flw    時(shí)間: 2010-08-11 08:25
因?yàn)?checksum 只有 16 位。
作者: daybreakcx    時(shí)間: 2010-08-11 08:47
沒處理16位以上的數(shù)據(jù)算是一種信息丟失吧……
作者: snriyt    時(shí)間: 2010-08-11 09:29
溢出
作者: nine8    時(shí)間: 2010-08-12 00:21
謝謝大家




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2