程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 兩種網絡數據格式的比較

兩種網絡數據格式的比較

編輯:Oracle數據庫基礎
 

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

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

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

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

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

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

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

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved