從本篇開始艰躺,真正進(jìn)入我們的Android網(wǎng)絡(luò)編程學(xué)習(xí)之旅。
概念
計(jì)算機(jī)網(wǎng)絡(luò)是利用通信設(shè)備和線路將地理位置不同的左电、功能獨(dú)立的多個(gè)計(jì)算機(jī)系統(tǒng)連接起來,以功能完善的網(wǎng)絡(luò)軟件實(shí)現(xiàn)網(wǎng)絡(luò)的硬件伏穆、軟件及資源共享和信息傳遞的系統(tǒng)纷纫。簡(jiǎn)單的說即連接兩臺(tái)或多臺(tái)計(jì)算機(jī)進(jìn)行通信的系統(tǒng)辱魁。
計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)
計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)可以定義為是網(wǎng)絡(luò)協(xié)議的層次劃分與各層協(xié)議的集合,同一層中的協(xié)議根據(jù)該層所要實(shí)現(xiàn)的功能來確定参滴。各對(duì)等層之間的協(xié)議功能由相應(yīng)的底層提供服務(wù)完成砾赔。
------ 百度百科
分層
對(duì)于復(fù)雜的計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議青灼,結(jié)構(gòu)分層很有必要杂拨。就像Android開發(fā)中,把應(yīng)用分層各個(gè)模塊弹沽。
優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
-
各層之間相互獨(dú)立策橘。
某一層并不需要知道它的下一層是如何實(shí)現(xiàn)的役纹,而僅僅需要知道該層通過層間接口(即界面)所提供的服務(wù) -
靈活性好。
當(dāng)任何一層發(fā)送變化時(shí)(例如由于技術(shù)的變化)辰斋,只要層間接口關(guān)系保持不變瘸味,則在這層以上或以下各層均不受影響 -
結(jié)構(gòu)上可分割開旁仿。
各層都可以采用最合適的技術(shù)來實(shí)現(xiàn) -
易于實(shí)現(xiàn)和維護(hù)孽糖。
這種結(jié)構(gòu)使得實(shí)現(xiàn)和調(diào)試一個(gè)龐大而又復(fù)雜的系統(tǒng)變得易于處理办悟,因?yàn)檎麄€(gè)的系統(tǒng)已被分解為若干個(gè)相對(duì)獨(dú)立的子系統(tǒng) -
能促進(jìn)標(biāo)準(zhǔn)化工作滩褥。
因?yàn)槊恳粚拥墓δ芗捌渌峁┑姆?wù)都已有了精確的說明
缺點(diǎn):
各層之間會(huì)有相同的功能出現(xiàn)瑰煎,產(chǎn)生額外開銷。
體系結(jié)構(gòu)
目前有3種體系結(jié)構(gòu):
- OSI參考模型魄健,概念清楚插勤,理論也較完整,但它既復(fù)雜又不實(shí)用
- TCP/IP體系結(jié)構(gòu)其垄,是一系列網(wǎng)絡(luò)協(xié)議的總稱,目前應(yīng)用最廣泛
- 五層體系結(jié)構(gòu)臂外,綜合OSI和TCP/IP的優(yōu)點(diǎn),既簡(jiǎn)潔又能將概念闡述清楚
OSI參考模型
分層 | 功能 | 數(shù)據(jù)單位 | 協(xié)議棧 |
---|---|---|---|
物理層 | 屏蔽傳輸媒體和通信手段的差異 | 比特(bit) | |
數(shù)據(jù)鏈路層 | 互連設(shè)備之間傳送和識(shí)別數(shù)據(jù)幀 | 幀(frame) | 點(diǎn)對(duì)點(diǎn)協(xié)議 以太網(wǎng)協(xié)議 高級(jí)數(shù)據(jù)鏈路協(xié)議 幀中繼 |
網(wǎng)絡(luò)層 | 地址管理和路由選擇 | 數(shù)據(jù)報(bào)(datagram) | IP協(xié)議 路由選擇協(xié)議 |
傳輸層 | 管理兩個(gè)節(jié)點(diǎn)之間的數(shù)據(jù)傳輸 負(fù)責(zé)可靠傳輸(確保數(shù)據(jù)被可靠地傳送到目標(biāo)地址) |
報(bào)文段(segment) | TCP協(xié)議 UDP協(xié)議 |
會(huì)話層 | 通信管理嚎货。負(fù)責(zé)建立和斷開通信連接(數(shù)據(jù)流動(dòng)的邏輯通路) 提供了數(shù)據(jù)交換定界和同步功能 管理傳輸層一下的分層 |
||
表示層 | 數(shù)據(jù)壓縮殖属、加密以及數(shù)據(jù)描述 | ||
應(yīng)用層 | 針對(duì)特定應(yīng)用的協(xié)議 | 報(bào)文(message) | HTTP DNS FTP SMTP SSH |
TCP/IP
TCP/IP的體系結(jié)構(gòu)比較簡(jiǎn)單瓦盛,只有四層原环。
它并不是遵循嚴(yán)格的 OSI 分層概念,應(yīng)用程序可以直接使用 IP 層玄组,或甚至直接使用最下面的網(wǎng)絡(luò)接口層《咧拢可以演化成如下圖所示:
五層協(xié)議
OSI的七層協(xié)議體系結(jié)構(gòu)的概念清楚摊阀,理論也較完整剩瓶,但它既復(fù)雜又不實(shí)用。TCP/IP 體系結(jié)構(gòu)則不同豌鹤,但它現(xiàn)在卻得到了非常廣泛的應(yīng)用布疙。TCP/IP 是一個(gè)四層的體系結(jié)構(gòu)愿卸。在學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)的原理時(shí)往往采用折中的辦法,即綜合 OSI 和 TCP/IP 的優(yōu)點(diǎn)儒溉,采用一種只有五層協(xié)議的體系結(jié)構(gòu)顿涣,這樣既簡(jiǎn)潔又能將概念闡述清楚酝豪。
五層協(xié)議中各層的主要功能
五層協(xié)議中孵淘,沒有表示層和會(huì)話層揉阎,這兩層的功能留給開發(fā)者來處理余黎。
物理層
在物理層巡扇,定義了以下內(nèi)容:
- 接口特性
- 機(jī)械特性:規(guī)定了接口的幾何形狀等
- 電器特性:規(guī)定了接口使用的電平大小等
- 功能特性:規(guī)定了接口引腳個(gè)數(shù)及各項(xiàng)功能等
- 規(guī)程特性:定義了接口在工作過程中遵循的相應(yīng)過程垮衷。
- 比特編碼:用比特對(duì)信息按照一定規(guī)則進(jìn)行編碼刀闷,用于傳輸
- 數(shù)據(jù)率:即數(shù)據(jù)傳輸速率
- 比特同步:時(shí)鐘同步
- 通訊方式:
- 單工通信:?jiǎn)蜗騻鬏?/li>
- 半雙工通信:雙向交替?zhèn)鬏?/li>
- 雙工通信:雙向同時(shí)傳輸
數(shù)據(jù)鏈路層
功能:
- 負(fù)責(zé)結(jié)點(diǎn)-結(jié)點(diǎn)數(shù)據(jù)傳輸
- 組楨:將網(wǎng)絡(luò)層傳下來的分組添加首部和尾部甸昏,用于標(biāo)記幀的開始和結(jié)束徐许。
- 物理尋址:在楨頭添加發(fā)送端或接收端的物理地址標(biāo)識(shí)數(shù)據(jù)幀的發(fā)送端或接收端雌隅。
- 流量控制:匹配發(fā)送端與接收端的發(fā)送速度與接收速度,避免數(shù)據(jù)淹沒接收端修械。
- 差錯(cuò)控制:檢測(cè)并重傳損壞或丟失幀检盼,并避免重復(fù)幀吨枉。
- 訪問(接入)控制:在任一給定時(shí)刻決定哪個(gè)設(shè)備擁有鏈路(物理介質(zhì))的控制使用權(quán)。
網(wǎng)絡(luò)層
功能:
- 負(fù)責(zé)源主機(jī)到目的主機(jī)數(shù)據(jù)分組(packet)的交付(可能穿越多個(gè)網(wǎng)絡(luò))。
- 邏輯尋址:全局唯一邏輯地址属提,確保數(shù)據(jù)分組被送達(dá)目的主機(jī)美尸,如IP地址(穿越多個(gè)網(wǎng)絡(luò)時(shí)师坎,鏈路層的物理尋址并不能用)。
- 路由:路由器(或網(wǎng)關(guān))互連網(wǎng)絡(luò)蕊温,并路由分組至最終目的主機(jī),進(jìn)行路徑選擇发笔。
- 分組轉(zhuǎn)發(fā)
傳輸層
傳輸層提供了進(jìn)程間的邏輯通信凉翻,傳輸層向高層用戶屏蔽了下面網(wǎng)絡(luò)層的核心細(xì)節(jié)制轰。
功能:
- 負(fù)責(zé)源-目的(端-端)(進(jìn)程間)完整報(bào)文傳輸
- 報(bào)文分段與重組
- SAP尋址:確保將完整報(bào)文提交給正確進(jìn)程垃杖,如端口號(hào)
- 連接控制:負(fù)責(zé)端-端的連接控制(建立連接、拆除連接)势就,是一種邏輯連接
- 流量控制:控制端-端傳輸?shù)乃俣?/li>
- 差錯(cuò)控制:差錯(cuò)檢測(cè)與糾正
應(yīng)用層
應(yīng)用層直接為用戶的應(yīng)用進(jìn)程提供服務(wù)
主要協(xié)議
IP協(xié)議
規(guī)定網(wǎng)絡(luò)地址的協(xié)議苞冯,叫做IP協(xié)議侧巨。它所定義的地址司忱,就被稱為IP地址。
IP的主要作用就是在復(fù)雜的網(wǎng)絡(luò)環(huán)境中將數(shù)據(jù)包發(fā)給最終的目標(biāo)地址鳍烁。
相關(guān)技術(shù):
- DNS:域名系統(tǒng)繁扎,一種分布式的網(wǎng)絡(luò)目錄服務(wù)梳玫,主要用于域名與IP地址的要互轉(zhuǎn)換。
- ARP:ARP是一種解決地址問題的協(xié)議姚垃,以目標(biāo)地址為線索盼忌,用來定位下一個(gè)應(yīng)該接收數(shù)據(jù)分包的網(wǎng)絡(luò)設(shè)備對(duì)應(yīng)的MAC地址掂墓。不過梆暮,ARP只適用于IPv4啦粹,不適用于IPv6。
- ICMP:Internet控制報(bào)文協(xié)議忍饰,作用是報(bào)告一些網(wǎng)絡(luò)傳輸過程中的錯(cuò)誤與做一些同步工作。
- DHCP:動(dòng)態(tài)主機(jī)配置協(xié)議,實(shí)現(xiàn)自動(dòng)設(shè)置IP地址于置、統(tǒng)一管理IP地址分配八毯。
- NAT:網(wǎng)絡(luò)地址轉(zhuǎn)換话速,作用是將IP數(shù)據(jù)報(bào)頭中的IP地址轉(zhuǎn)換為另一個(gè)IP地址俊柔。
- IP隧道:是一種數(shù)據(jù)包封裝技術(shù),它是將原始IP包(其報(bào)頭包含原始發(fā)送者和最終目的地)封裝在另一個(gè)數(shù)據(jù)包(稱為封裝的IP包)的數(shù)據(jù)凈荷中進(jìn)行傳輸物赶。
TCP協(xié)議
傳輸控制協(xié)議(Transmission Control Protocol),面向連接的告嘲、可靠的流協(xié)議,提供可靠的通信傳輸赋焕。
UDP協(xié)議
用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol)仰楚,面向無連接的僧界,具有不可靠性的數(shù)據(jù)報(bào)協(xié)議。
路由協(xié)議
Routing protocol咬腕,是一種指定數(shù)據(jù)包轉(zhuǎn)送方式的網(wǎng)上協(xié)議涨共。
Socket
即套接字举反,是應(yīng)用層 與 TCP/IP 協(xié)議族通信的中間軟件抽象層照筑,表現(xiàn)為一個(gè)封裝了 TCP / IP協(xié)議族 的編程接口(API)凝危。
HTTP協(xié)議
超文本傳輸協(xié)議(Hyper Text Transfer Protocol)晨逝,用于從萬維網(wǎng)服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議捉貌。