UDP校验
- 采用二進(jìn)制反碼運(yùn)算求和 - 具體規(guī)則:(求到反碼后的運(yùn)算規(guī)則) - 1,從低位到高位逐列計(jì)算 - 2,0 +0=0 0+1=1 1+1 =10(1進(jìn)位) - ???????? 3,最高位進(jìn)位的話要加到最后的結(jié)果上 - ? - 直接在原碼基礎(chǔ)上求反碼和: - 1,從低位到高位逐列計(jì)算 - 2,0 +0=10 0+1=1 1+1 =0(其實(shí)是一樣啦,這里00-》11后相加是不是10哦,向最高位進(jìn)1) - ???????????????? 3,最高位進(jìn)位的話要加到最后的結(jié)果上 - ? - ? - ? 
 - ? - 0100 1111 0001 1010 - 0111 1010 0001 1000 - ------------------------------------- - 0011 0110 1100 1100最后最高位有進(jìn)位,結(jié)果加1 - 變?yōu)?#xff1a; 0011 0110 1100 1101 - ? - ? - 在發(fā)送數(shù)據(jù)時(shí),為了計(jì)算數(shù)據(jù)包的檢驗(yàn)和。應(yīng)該按如下步驟: - ??? 1、把校驗(yàn)和字段設(shè)置為0; - ??? 2、把需要校驗(yàn)的數(shù)據(jù)看成以16位為單位的數(shù)字組成,依次進(jìn)行二進(jìn)制反碼求和; - ??? 3、把得到的結(jié)果存入校驗(yàn)和字段中 - ??? 在接收數(shù)據(jù)時(shí),計(jì)算數(shù)據(jù)包的檢驗(yàn)和相對(duì)簡(jiǎn)單,按如下步驟: - ??? 1、把首部看成以16位為單位的數(shù)字組成,依次進(jìn)行二進(jìn)制反碼求和,包括校驗(yàn)和字段; - ??? 2、檢查計(jì)算出的校驗(yàn)和的結(jié)果是否為0; - ??? 3、如果等于0,說(shuō)明被整除,校驗(yàn)和正確。否則,校驗(yàn)和就是錯(cuò)誤的,協(xié)議棧要拋棄這個(gè)數(shù)據(jù)包。 - ? - 書(shū)上有一句話:“如果校驗(yàn)和的計(jì)算結(jié)果為0,則存入的值為全1(65535),這在二進(jìn)制反碼計(jì)算中是等效的” - ? ? ? 來(lái)自 <http://blog.csdn.net/dingmin1860/article/details/48268927> - ? - ? 
總結(jié)
 
                            
                        - 上一篇: 撕不撕?如何撕?跟谁撕?权力游戏致胜手册
- 下一篇: 四六级分数根据比例给分
