新聞中心

        EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > IP協(xié)議校驗(yàn)算法程序源碼

        IP協(xié)議校驗(yàn)算法程序源碼

        作者: 時間:2012-05-17 來源:網(wǎng)絡(luò) 收藏

          采用統(tǒng)一的,其計(jì)算比較簡單:設(shè)和初值為0,然后對數(shù)據(jù)每16位求異或,結(jié)果取反,便得和。校驗(yàn)時將數(shù)據(jù)(含校驗(yàn)和)按同樣的求和,結(jié)果為0則數(shù)據(jù)正確,不為0表示通訊出錯,需要丟棄該數(shù)據(jù)包。這樣能簡化校驗(yàn)程序設(shè)計(jì),提高TCP/的效率。

        本文引用地址:http://www.104case.com/article/154924.htm

          應(yīng)廣大讀者的要求給出作者通用的校驗(yàn)程序:

             typedef unsigned int    __u16;typedef unsigned long   __u32;__u16 checksum(__u16 xdata *dp, __u16 length){__u32 sum = 0;__u16 len = length >> 1;while(len-- > 0)sum += *dp++;if(length  1)sum += (*dp  0xFF00);sum = (sum >> 16) + (sum  0xFFFF);sum += (sum >> 16);len = sum  0xFFFF;return(~len);}

          所有TCP/IP的校驗(yàn)和計(jì)算和數(shù)據(jù)包的校驗(yàn)均由上面的子程序完成。不過需要注意的是TCP和UDP的校驗(yàn)需要加上偽頭標(biāo),不然得不到正確的結(jié)果,偽頭標(biāo)違背了協(xié)議的分層原則,但這種違背是出于實(shí)際需要的,也正體現(xiàn)了TCP/IP協(xié)議設(shè)計(jì)的靈活性。

        tcp/ip相關(guān)文章:tcp/ip是什么




        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 云梦县| 胶州市| 三门峡市| 扶沟县| 敦化市| 上栗县| 个旧市| 滨州市| 抚宁县| 阿巴嘎旗| 平昌县| 巧家县| 留坝县| 绥江县| 峨眉山市| 长寿区| 连城县| 扎兰屯市| SHOW| 宜良县| 龙山县| 焦作市| 曲沃县| 阜宁县| 游戏| 阆中市| 铜陵市| 定边县| 高青县| 博客| 夏邑县| 张家口市| 岳池县| 镶黄旗| 福州市| 浦北县| 咸阳市| 敦煌市| 顺义区| 汾阳市| 台南市|