Android網絡編程-計算機網絡基礎

從本篇開始,真正進入咱們的Android網絡編程學習之旅。html

概念

計算機網絡是利用通訊設備和線路將地理位置不一樣的、功能獨立的多個計算機系統鏈接起來,以功能完善的網絡軟件實現網絡的硬件、軟件及資源共享和信息傳遞的系統。簡單的說即鏈接兩臺或多臺計算機進行通訊的系統。git

計算機網絡體系結構

計算機網絡體系結構能夠定義爲是網絡協議的層次劃分與各層協議的集合,同一層中的協議根據該層所要實現的功能來肯定。各對等層之間的協議功能由相應的底層提供服務完成。
------ 百度百科github

分層

對於複雜的計算機網絡協議,結構分層頗有必要。就像Android開發中,把應用分層各個模塊。 面試

VOlsPS.png

優缺點

優勢:編程

  • 各層之間相互獨立。某一層並不須要知道它的下一層是如何實現的,而僅僅須要知道該層經過層間接口(即界面)所提供的服務
  • 靈活性好。當任何一層發送變化時(例如因爲技術的變化),只要層間接口關係保持不變,則在這層以上或如下各層均不受影響
  • 結構上可分割開。各層均可以採用最合適的技術來實現
  • 易於實現和維護。 這種結構使得實現和調試一個龐大而又複雜的系統變得易於處理,由於整個的系統已被分解爲若干個相對獨立的子系統
  • 能促進標準化工做。由於每一層的功能及其所提供的服務都已有了精確的說明

缺點: 各層之間會有相同的功能出現,產生額外開銷。瀏覽器

體系結構

目前有3種體系結構:服務器

  • OSI參考模型,概念清楚,理論也較完整,但它既複雜又不實用
  • TCP/IP體系結構,是一系列網絡協議的總稱,目前應用最普遍
  • 五層體系結構,綜合OSI和TCP/IP的優勢,既簡潔又能將概念闡述清楚

體系結構

OSI參考模型

分層 功能 數據單位 協議棧
物理層 屏蔽傳輸媒體和通訊手段的差別 比特(bit)
數據鏈路層 互連設備之間傳送和識別數據幀 幀(frame) 點對點協議
以太網協議
高級數據鏈路協議
幀中繼
網絡層 地址管理和路由選擇 數據報(datagram) IP協議
路由選擇協議
傳輸層 管理兩個節點之間的數據傳輸
負責可靠傳輸(確保數據被可靠地傳送到目標地址)
報文段(segment) TCP協議
UDP協議
會話層 通訊管理。負責創建和斷開通訊鏈接(數據流動的邏輯通路)
提供了數據交換定界和同步功能
管理傳輸層一下的分層
表示層 數據壓縮、加密以及數據描述
應用層 針對特定應用的協議 報文(message) HTTP
DNS
FTP
SMTP
SSH

TCP/IP

TCP/IP的體系結構比較簡單,只有四層。 它並非遵循嚴格的 OSI 分層概念,應用程序能夠直接使用 IP 層,或甚至直接使用最下面的網絡接口層。能夠演化成以下圖所示: 網絡

tcp/ip

五層協議

OSI的七層協議體系結構的概念清楚,理論也較完整,但它既複雜又不實用。TCP/IP 體系結構則不一樣,但它如今卻獲得了很是普遍的應用。TCP/IP 是一個四層的體系結構。在學習計算機網絡的原理時每每採用折中的辦法,即綜合 OSI 和 TCP/IP 的優勢,採用一種只有五層協議的體系結構,這樣既簡潔又能將概念闡述清楚。tcp

五層協議中各層的主要功能

五層協議中,沒有表示層和會話層,這兩層的功能留給開發者來處理。分佈式

物理層

物理層
在物理層,定義瞭如下內容:

  • 接口特性
    • 機械特性:規定了接口的幾何形狀等
    • 電器特性:規定了接口使用的電平大小等
    • 功能特性:規定了接口引腳個數及各項功能等
    • 規程特性:定義了接口在工做過程當中遵循的相應過程。
  • 比特編碼:用比特對信息按照必定規則進行編碼,用於傳輸
  • 數據率:即數據傳輸速率
  • 比特同步:時鐘同步
  • 通信方式:
    • 單工通訊:單向傳輸
    • 半雙工通訊:雙向交替傳輸
    • 雙工通訊:雙向同時傳輸

數據鏈路層

數據鏈路層
功能:

  • 負責結點-結點數據傳輸
  • 組楨:將網絡層傳下來的分組添加首部和尾部,用於標記幀的開始和結束。
  • 物理尋址:在楨頭添加發送端或接收端的物理地址標識數據幀的發送端或接收端。
  • 流量控制:匹配發送端與接收端的發送速度與接收速度,避免數據淹沒接收端。
  • 差錯控制:檢測並重傳損壞或丟失幀,並避免重複幀。
  • 訪問(接入)控制:在任一給定時刻決定哪一個設備擁有鏈路(物理介質)的控制使用權。

網絡層

網絡層
功能:

  • 負責源主機到目的主機數據分組(packet)的交付(可能穿越多個網絡)。
  • 邏輯尋址:全局惟一邏輯地址,確保數據分組被送達目的主機,如IP地址(穿越多個網絡時,鏈路層的物理尋址並不能用)。
  • 路由:路由器(或網關)互連網絡,並路由分組至最終目的主機,進行路徑選擇。
  • 分組轉發

傳輸層

傳輸層提供了進程間的邏輯通訊,傳輸層向高層用戶屏蔽了下面網絡層的核心細節。

傳輸層
功能:

  • 負責源-目的(端-端)(進程間)完整報文傳輸
  • 報文分段與重組
  • SAP尋址:確保將完整報文提交給正確進程,如端口號
  • 鏈接控制:負責端-端的鏈接控制(創建鏈接、拆除鏈接),是一種邏輯鏈接
  • 流量控制:控制端-端傳輸的速度
  • 差錯控制:差錯檢測與糾正

應用層

應用層
應用層直接爲用戶的應用進程提供服務

主要協議

IP協議

規定網絡地址的協議,叫作IP協議。它所定義的地址,就被稱爲IP地址。
IP的主要做用就是在複雜的網絡環境中將數據包發給最終的目標地址。 相關技術:

  • DNS:域名系統,一種分佈式的網絡目錄服務,主要用於域名與IP地址的要互轉換。
  • ARP:ARP是一種解決地址問題的協議,以目標地址爲線索,用來定位下一個應該接收數據分包的網絡設備對應的MAC地址。不過,ARP只適用於IPv4,不適用於IPv6。
  • ICMP:Internet控制報文協議,做用是報告一些網絡傳輸過程當中的錯誤與作一些同步工做。
  • DHCP:動態主機配置協議,實現自動設置IP地址、統一管理IP地址分配。
  • NAT:網絡地址轉換,做用是將IP數據報頭中的IP地址轉換爲另外一個IP地址。
  • IP隧道:是一種數據包封裝技術,它是將原始IP包(其報頭包含原始發送者和最終目的地)封裝在另外一個數據包(稱爲封裝的IP包)的數據淨荷中進行傳輸。

TCP協議

傳輸控制協議(Transmission Control Protocol),面向鏈接的、可靠的流協議,提供可靠的通訊傳輸。

UDP協議

用戶數據報協議(User Datagram Protocol),面向無鏈接的,具備不可靠性的數據報協議。

路由協議

Routing protocol,是一種指定數據包轉送方式的網上協議。

Socket

即套接字,是應用層 與 TCP/IP 協議族通訊的中間軟件抽象層,表現爲一個封裝了 TCP / IP協議族 的編程接口(API)。

HTTP協議

超文本傳輸協議(Hyper Text Transfer Protocol),用於從萬維網服務器傳輸超文本到本地瀏覽器的傳送協議。

系列文章目錄

參考

相關文章
相關標籤/搜索