協議的概念
什么是協議?
從應用的角度出發,協議可理解為“規則”,是數據傳輸和數據的解釋的規則。
假設,A、B雙方欲傳輸文件。規定:
第一次,傳輸文件名,接收方接收到文件名,應答OK給傳輸方;
第二次,發送文件的尺寸,接收方接收到該數據再次應答一個OK;
第三次,傳輸文件內容。同樣,接收方接收數據完成后應答OK表示文件內容接收成功。由此,無論A、B之間傳遞何種文件,都是通過三次數據傳輸來完成。A、B之間形成了一個最簡單的數據傳輸規則。
雙方都按此規則發送、接收數據。A、B之間達成的這個相互遵守的規則即為協議。這種僅在A、B之間被遵守的協議稱之為原始協議。
當此協議被更多的人采用,不斷的增加、改進、維護、完善。最終形成一個穩定的、完整的文件傳輸協議,
被廣泛應用于各種文件傳輸過程中。該協議就成為一個標準協議。最早的ftp協議就是由此衍生而來。
TCP協議注重 數據的傳輸。http協議著重于 數據的解釋。
典型協議
傳輸層 常見協議有TCP/UDP協議。
應用層 常見的協議有HTTP協議,FTP協議。
網絡層 常見協議有IP協議、ICMP協議、IGMP協議。
網絡接口層 常見協議有ARP協議、RARP協議。TCP傳輸控制協議,是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。
UDP用戶數據報協議(是OSI參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。
HTTP超文本傳輸協議 是互聯網上應用最為廣泛的一種網絡協議。
FTP文件傳輸協議
IP協議是因特網互聯協議
ICMP協議是Internet控制報文協議它是TCP/IP協議族的一個子協議,用于在IP主機、路由器之間傳遞控制消息。
IGMP協議是 Internet 組管理協議,是因特網協議家族中的一個組播協議。該協議運行在主機和組播路由器之間。
ARP協議是正向地址解析協議,通過已知的IP,尋找對應主機的MAC地址。
RARP是反向地址轉換協議,通過MAC地址確定IP地址。
網絡應用程序設計模式
C/S模式
傳統的網絡應用設計模式,客戶機(client)/服務器(server)模式。需要在通訊兩端各自部署客戶機和服務器來完成數據通信。
B/S模式
瀏覽器()/服務器(server)模式。只需在一端部署服務器,而另外一端使用每臺PC都默認配置的瀏覽器即可完成數據的傳輸。
**優缺點
對于C/S模式來說,其優點明顯。
客戶端位于目標主機上可以保證性能,將數據緩存至客戶端本地,從而提高數據傳輸效率。
且,一般來說客戶端和服務器程序由一個開發團隊創作,所以他們之間所采用的協議相對靈活。
可以在標準協議的基礎上根據需求裁剪及定制。例如,騰訊公司所采用的通信協議,即為ftp協議的修改剪裁版。
因此,傳統的網絡應用程序及較大型的網絡應用程序都首選C/S模式進行開發。如,知名的網絡游戲魔獸世界。3D畫面,數據量龐大,使用C/S模式可以提前在本地進行大量數據的緩存處理,從而提高觀感。
C/S模式的**缺點也較突出。
由于客戶端和服務器都需要有一個開發團隊來完成開發。工作量將成倍提升,開發周期較長。
另外,從用戶角度出發,需要將客戶端安插至用戶主機上,對用戶主機的安全性構成威脅。
**這也是很多用戶不愿使用C/S模式應用程序的重要原因。
B/S模式相比C/S模式而言,由于它沒有獨立的客戶端,使用標準瀏覽器作為客戶端,
**其工作開發量較小。只需開發服務器端即可。
另外由于其采用瀏覽器顯示數據,因此移植性非常好,不受平臺限制。
如早期的偷菜游戲,在各個平臺上都可以完美運行。
B/S模式的缺點也較明顯。
由于使用第三方瀏覽器,因此網絡應用支持受限。
另外,沒有客戶端放到對方主機上,緩存數據不盡如人意,從而傳輸數據量受到限制。應用的觀感大打折扣。
第三,必須與瀏覽器一樣,采用標準http協議進行通信,協議選擇不靈活。
因此在開發過程中,模式的選擇由上述各自的特點決定。根據實際需求選擇應用程序設計模式。