• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 手機與無線通信 > 設計應用 > IP協議校驗算法程序

    IP協議校驗算法程序

    作者: 時間:2010-08-23 來源:網絡 收藏

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

    本文引用地址:http://www.czjhyjcfj.com/article/157167.htm

      應廣大讀者的要求給出作者通用的校驗

         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的校驗和計算和數據包的校驗均由上面的子完成。不過需要注意的是TCP和UDP的校驗需要加上偽頭標,不然得不到正確的結果,偽頭標違背了協議的分層原則,但這種違背是出于實際需要的,也正體現了TCP/IP協議設計的靈活性。

    tcp/ip相關文章:tcp/ip是什么




    關鍵詞: 程序 算法 校驗 協議 IP

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 肥东县| 海丰县| 夏津县| 合江县| 嘉鱼县| 黎川县| 于都县| 汪清县| 满洲里市| 开江县| 达州市| 南江县| 武义县| 土默特右旗| 宿松县| 朝阳市| 武清区| 隆回县| 岗巴县| 宁远县| 乌兰县| 老河口市| 孝昌县| 梓潼县| 荔波县| 峨眉山市| 安塞县| 木里| 凉山| 会理县| 壤塘县| 苍梧县| 辽宁省| 霍城县| 新野县| 白银市| 张家口市| 宣城市| 水富县| 兴安盟| 鱼台县|