• <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 那誰 閱讀(5328) 評論(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
            精品久久久久久国产| 亚洲AV无码一区东京热久久| 一本久久a久久精品综合夜夜| 狠狠色丁香婷婷综合久久来| 国产亚洲成人久久| 无码乱码观看精品久久| 欧美喷潮久久久XXXXx| 久久精品这里热有精品| 久久久国产视频| 精品乱码久久久久久久| 久久久久久国产精品无码下载 | 精品国产综合区久久久久久 | 韩国无遮挡三级久久| 久久久国产99久久国产一| 精品国产一区二区三区久久| 国内精品伊人久久久久妇| 99久久免费国产精品| 嫩草伊人久久精品少妇AV| 欧美一级久久久久久久大| 久久99精品国产99久久6男男| 免费精品久久天干天干| 久久久久一本毛久久久| AV无码久久久久不卡网站下载| 婷婷久久综合九色综合九七| 很黄很污的网站久久mimi色| 国产产无码乱码精品久久鸭| 国产69精品久久久久9999APGF| 久久婷婷五月综合色99啪ak| 亚洲国产精品久久久久婷婷老年 | 久久国产精品成人影院| 亚洲国产日韩欧美久久| 亚洲v国产v天堂a无码久久| 久久国产精品免费一区二区三区| 久久国产亚洲精品麻豆| 亚洲综合久久综合激情久久| 久久亚洲精品视频| 热re99久久精品国产99热| 国产福利电影一区二区三区久久久久成人精品综合 | 国产激情久久久久影院小草| 狠狠色丁香久久婷婷综| 亚洲国产精久久久久久久|