• <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 那誰 閱讀(5357) 評論(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
            久久久一本精品99久久精品66| 久久精品人人做人人爽97| 国产麻豆精品久久一二三| 91精品国产91久久久久福利 | 久久AV高潮AV无码AV| 午夜久久久久久禁播电影| 亚洲国产成人久久精品动漫| 欧美久久天天综合香蕉伊| 人妻精品久久无码专区精东影业| 国产A级毛片久久久精品毛片| 久久人妻AV中文字幕| 99热热久久这里只有精品68| 无码精品久久久久久人妻中字| 国产精品成人无码久久久久久| 国产91久久综合| 香蕉久久影院| 久久精品成人免费观看97| 色综合久久最新中文字幕| 亚洲国产成人精品91久久久 | 中文字幕久久亚洲一区| 久久国产一区二区| 思思久久99热只有频精品66| 国产成人精品久久综合| 久久亚洲国产精品成人AV秋霞| 久久99热精品| 久久免费精品一区二区| 久久亚洲国产成人精品性色| 亚洲伊人久久综合中文成人网| 国产午夜福利精品久久| 久久99精品综合国产首页| 久久亚洲国产成人精品性色| 97久久超碰成人精品网站| 精品无码久久久久久午夜| 国产产无码乱码精品久久鸭| 狠狠88综合久久久久综合网| 久久国产三级无码一区二区| 国产成人无码精品久久久性色| 亚洲午夜无码AV毛片久久| 青青草国产97免久久费观看| 日产久久强奸免费的看| 少妇被又大又粗又爽毛片久久黑人|