• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            那誰的技術博客

            感興趣領域:高性能服務器編程,存儲,算法,Linux內核
            隨筆 - 210, 文章 - 0, 評論 - 1183, 引用 - 0
            數據加載中……

            兩種網絡數據格式的比較

            第一種類型,二進制格式的網絡數據包,通常要首先接收包頭,在包頭中有校驗數據校驗獲取的數據是否正確,同時包頭中還有數據域存放接下來的內容域的大小,得到該大小之后開始接收內容包,然后對內容包進行解析,包頭的大小是固定的,否則無法知道何時接收包頭完畢進行解析.

            第二種類型,XML格式組織的數據包,通常以連續幾個\r\n之類的字符表示結束,在接收包的時候無法知道所要獲取數據包的大小,只有每次判斷時候已經接收到了表示結束的字符.

            兩種傳送數據包優缺點比較:
            1)網絡傳送效率比較:第一種的優點是接收數據包的效率高,首先按照包頭的數據大小接收包頭可以獲知內容包的大小,再按照此大小獲取數據包;而第二種數據包無法在接收的時候獲取該數據包的大小,只能在每次接收的時候判斷時候已經到達包的結尾,因此相比較而言第一種格式的數據包在網絡傳送效率上高一些.同時,由于第一種格式可以在包頭中加入一些校驗字段判斷包是否合法,在數據校驗這一塊也具有優勢.

            2)解析數據包:第一種數據包沒有固定的格式,或者準確的說沒有固定的解析器用于解析這種格式的數據,因為每個人定出的協議都不盡相同;而第二種數據包有完備的解析XML格式數據的第三方庫可用(libxml2,tinyxml,expat等),但是并不見得有了第三方的庫解析起數據起來效率就一定高(這里指的是程序的效率,而不是編碼的效率),因為XML解析比普通的數據解析要復雜的多,效率也就更加慢一些.

            3)可擴展性:第一種數據包的格式不同,可擴展性也不盡相同,具體與每種格式的包有區別.第二種格式的數據包由于采用了XML格式,天正的具備很好的可擴展性.

            4)數據安全性:第一種格式的數據包可以方便的實現數據的加密,而XML格式的數據實現加密不容易,基本上抓包就能看到數據.

            綜上,個人認為XML格式的數據包僅在可擴展性上有較大的優勢,但是對于安全性,性能要求不太高而擴展性要求較大的協議還是建議使用XML格式的協議,畢竟如果協議制定的不好造成擴展性差也是麻煩的事情,因為客戶端一旦放出去就收不回來的.目前jabber的通訊協議就是采用的XML格式的協議.


            posted on 2008-03-26 23:13 那誰 閱讀(5336) 評論(7)  編輯 收藏 引用 所屬分類: 網絡編程服務器設計

            評論

            # re: 兩種網絡數據格式的比較  回復  更多評論   

            樓主總結的很不錯。

            安全性方面,我感覺兩者差別不是很大。

            使用方面,我更多是使用XML格式的,可能和個人的協議設計能力有關吧:)
            2008-04-21 23:59 | perddy

            # re: 兩種網絡數據格式的比較  回復  更多評論   

            XML格式 無論是解析還是打包還是協議定制都比二進制格式復雜多了,如果不可考慮跨平臺和跨語言,用XML格式是自殘
            2008-05-04 13:29 | 過客

            # re: 兩種網絡數據格式的比較  回復  更多評論   

            xml分析慢,傳送量大........
            二進制的效率等各個方面,就要看設計的人的水平了.
            個人認為二進制傳送是最高效.
            2008-05-26 12:58 | liangyj

            # re: 兩種網絡數據格式的比較  回復  更多評論   

            還是習慣用二進制格式的網絡數據包了,畢竟在公司開發的產品不是開源的,所以只要雙方定義好接口(協議)就可以了
            2008-06-07 00:37 |

            # re: 兩種網絡數據格式的比較[未登錄]  回復  更多評論   

            個人認為雖然xml比較方便一些,但是其過多附帶的結構數據以及分析是的效率也是很多密集交互應用不能接受的吧,其實10串的處理到比xml簡單直接很多~~
            2008-09-05 22:00 | happyday

            # re: 兩種網絡數據格式的比較  回復  更多評論   

            使用二進制封裝xml
            2009-07-30 16:58 | ssed

            # re: 兩種網絡數據格式的比較  回復  更多評論   

            xml便于截包分析
            2011-03-22 16:28 | asdfasdf
            色诱久久久久综合网ywww| 久久久久亚洲AV无码专区桃色| 久久人妻少妇嫩草AV蜜桃| 中文字幕精品久久| 精品无码久久久久国产动漫3d| 国产亚洲精品美女久久久| 国产精品狼人久久久久影院 | 99蜜桃臀久久久欧美精品网站| 国产亚洲美女精品久久久2020| 精品永久久福利一区二区| 精品视频久久久久| 亚洲综合伊人久久综合| 伊人丁香狠狠色综合久久| 久久婷婷五月综合成人D啪| 精品久久一区二区三区| 免费无码国产欧美久久18| 久久免费线看线看| 亚洲色大成网站WWW久久九九| 久久久青草青青亚洲国产免观| 国产精品99久久久精品无码| 亚洲国产精品久久久久婷婷软件 | 精品综合久久久久久98| 久久久免费观成人影院| 久久99精品国产99久久| 久久综合鬼色88久久精品综合自在自线噜噜| 久久国产精品77777| 久久久这里只有精品加勒比| 国产亚洲精久久久久久无码AV| 国产精品久久亚洲不卡动漫| 一本久久a久久精品vr综合| 久久精品国产精品亚洲艾草网美妙| 久久久久久九九99精品| 一本色道久久88精品综合| 久久久国产打桩机| 天堂无码久久综合东京热| 99久久国产综合精品五月天喷水| 久久婷婷五月综合国产尤物app| 久久无码专区国产精品发布| 亚洲国产成人精品91久久久 | 日韩十八禁一区二区久久 | 久久不见久久见免费影院www日本|