• <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 那誰 閱讀(5337) 評論(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
            久久久久se色偷偷亚洲精品av| 97精品伊人久久久大香线蕉 | 国产成人精品久久综合| 精品久久一区二区| 亚洲国产天堂久久综合网站| 久久99精品国产99久久6| 久久久久久久久久久| 久久精品视频网| 亚洲日韩欧美一区久久久久我| 影音先锋女人AV鲁色资源网久久| 97久久超碰成人精品网站| 久久一区二区三区99| 久久精品人成免费| 深夜久久AAAAA级毛片免费看| 99久久超碰中文字幕伊人 | 久久精品国产男包| 欧美精品一区二区精品久久| 香蕉久久夜色精品升级完成| 国产精品成人99久久久久91gav| 亚洲AV无码成人网站久久精品大| 精品视频久久久久| 伊人久久大香线蕉精品| 亚洲国产精品无码久久一区二区 | 区久久AAA片69亚洲 | 欧美va久久久噜噜噜久久| 韩国无遮挡三级久久| 奇米影视7777久久精品| 久久婷婷五月综合97色直播| 久久综合九色欧美综合狠狠| 日本福利片国产午夜久久| 国内精品久久久久久99蜜桃| 久久人人爽人人爽人人AV东京热| 亚洲精品无码专区久久同性男| 久久精品国产一区二区三区不卡| 国产精品久久影院| 国产欧美久久一区二区| 九九99精品久久久久久| 欧美亚洲国产精品久久蜜芽| 麻豆精品久久久一区二区| 99热热久久这里只有精品68| 久久精品18|