從本篇開始,真正進入咱們的Android網絡編程學習之旅。html
計算機網絡是利用通訊設備和線路將地理位置不一樣的、功能獨立的多個計算機系統鏈接起來,以功能完善的網絡軟件實現網絡的硬件、軟件及資源共享和信息傳遞的系統。簡單的說即鏈接兩臺或多臺計算機進行通訊的系統。git
計算機網絡體系結構能夠定義爲是網絡協議的層次劃分與各層協議的集合,同一層中的協議根據該層所要實現的功能來肯定。各對等層之間的協議功能由相應的底層提供服務完成。
------ 百度百科github
對於複雜的計算機網絡協議,結構分層頗有必要。就像Android開發中,把應用分層各個模塊。 面試
優勢:編程
各層之間相互獨立。
某一層並不須要知道它的下一層是如何實現的,而僅僅須要知道該層經過層間接口(即界面)所提供的服務靈活性好。
當任何一層發送變化時(例如因爲技術的變化),只要層間接口關係保持不變,則在這層以上或如下各層均不受影響結構上可分割開。
各層均可以採用最合適的技術來實現易於實現和維護。
這種結構使得實現和調試一個龐大而又複雜的系統變得易於處理,由於整個的系統已被分解爲若干個相對獨立的子系統能促進標準化工做。
由於每一層的功能及其所提供的服務都已有了精確的說明缺點: 各層之間會有相同的功能出現,產生額外開銷。瀏覽器
目前有3種體系結構:服務器
分層 | 功能 | 數據單位 | 協議棧 |
---|---|---|---|
物理層 | 屏蔽傳輸媒體和通訊手段的差別 | 比特(bit) | |
數據鏈路層 | 互連設備之間傳送和識別數據幀 | 幀(frame) | 點對點協議 以太網協議 高級數據鏈路協議 幀中繼 |
網絡層 | 地址管理和路由選擇 | 數據報(datagram) | IP協議 路由選擇協議 |
傳輸層 | 管理兩個節點之間的數據傳輸 負責可靠傳輸(確保數據被可靠地傳送到目標地址) |
報文段(segment) | TCP協議 UDP協議 |
會話層 | 通訊管理。負責創建和斷開通訊鏈接(數據流動的邏輯通路) 提供了數據交換定界和同步功能 管理傳輸層一下的分層 |
||
表示層 | 數據壓縮、加密以及數據描述 | ||
應用層 | 針對特定應用的協議 | 報文(message) | HTTP DNS FTP SMTP SSH |
TCP/IP的體系結構比較簡單,只有四層。 它並非遵循嚴格的 OSI 分層概念,應用程序能夠直接使用 IP 層,或甚至直接使用最下面的網絡接口層。能夠演化成以下圖所示: 網絡
OSI的七層協議體系結構的概念清楚,理論也較完整,但它既複雜又不實用。TCP/IP 體系結構則不一樣,但它如今卻獲得了很是普遍的應用。TCP/IP 是一個四層的體系結構。在學習計算機網絡的原理時每每採用折中的辦法,即綜合 OSI 和 TCP/IP 的優勢,採用一種只有五層協議的體系結構,這樣既簡潔又能將概念闡述清楚。tcp
五層協議中,沒有表示層和會話層,這兩層的功能留給開發者來處理。分佈式
傳輸層提供了進程間的邏輯通訊,傳輸層向高層用戶屏蔽了下面網絡層的核心細節。
功能:規定網絡地址的協議,叫作IP協議。它所定義的地址,就被稱爲IP地址。
IP的主要做用就是在複雜的網絡環境中將數據包發給最終的目標地址。 相關技術:
傳輸控制協議(Transmission Control Protocol),面向鏈接的、可靠的流協議,提供可靠的通訊傳輸。
用戶數據報協議(User Datagram Protocol),面向無鏈接的,具備不可靠性的數據報協議。
Routing protocol,是一種指定數據包轉送方式的網上協議。
即套接字,是應用層 與 TCP/IP 協議族通訊的中間軟件抽象層,表現爲一個封裝了 TCP / IP協議族 的編程接口(API)。
超文本傳輸協議(Hyper Text Transfer Protocol),用於從萬維網服務器傳輸超文本到本地瀏覽器的傳送協議。