Android網(wǎng)絡(luò)編程-計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)

從本篇開始艰躺,真正進(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è)模塊弹沽。


VOlsPS.png

優(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é)議捉貌。

系列文章目錄

參考

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末牧挣,一起剝皮案震驚了整個(gè)濱河市醒陆,隨后出現(xiàn)的幾起案子刨摩,更是在濱河造成了極大的恐慌世吨,老刑警劉巖耘婚,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沐祷,死亡現(xiàn)場(chǎng)離奇詭異戈轿,居然都是意外死亡思杯,警方通過查閱死者的電腦和手機(jī)色乾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門领突,熙熙樓的掌柜王于貴愁眉苦臉地迎上來君旦,“玉大人金砍,你說我怎么就攤上這事∷〕恚” “怎么了鹅巍?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)澎羞。 經(jīng)常有香客問我煤痕,道長(zhǎng)摆碉,這世上最難降的妖魔是什么巷帝? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任楞泼,我火速辦了婚禮堕阔,結(jié)果婚禮上超陆,老公的妹妹穿的比我還像新娘时呀。我一直安慰自己晶默,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坞靶,像睡著了一般滩愁。 火紅的嫁衣襯著肌膚如雪辫封。 梳的紋絲不亂的頭發(fā)上倦微,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天欣福,我揣著相機(jī)與錄音,去河邊找鬼雏逾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛屑宠,可吹牛的內(nèi)容都是我干的典奉。 我是一名探鬼主播卫玖,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼假瞬,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼笨触!你這毒婦竟也來了芦劣?” 一聲冷哼從身側(cè)響起说榆,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤串慰,失蹤者是張志新(化名)和其女友劉穎唱蒸,沒想到半個(gè)月后神汹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡屁魏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年滔以,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氓拼。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡你画,死狀恐怖抵碟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情坏匪,我是刑警寧澤拟逮,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站适滓,受9級(jí)特大地震影響唱歧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧造锅,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至站辉,卻和暖如春殊霞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工测秸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親倦春。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容