Android網絡編程(一):網絡基礎知識

1、兩臺計算機是如何通訊的?

簡單地說,兩臺計算機之間連上通訊介質,也就是電纜或者光纖,A計算機把要發送的類容轉換成二進制代碼,然後再根據二進制碼發送對應的電流脈衝,電流脈衝通過電纜傳播到B計算機,B計算機把電流脈衝解析成二進制碼,再轉換成對應的內容。

2、網絡協議

什麼是網絡協議,爲什麼需要網絡協議?網絡協議其實就是發送端和接收端互相約定好的規則,不然鬼知道你發的那一大堆二進制碼是什麼東西,所以需要雙方約定好規則。簡單舉例,比如雙方約定好前8個字節爲標題,那麼接收方接收之後就把前8個字節作爲標題,後面的是正文,就能把數據完整地接收,而不是把所有數據都當作標題或者內容。

當然現實中的網絡錯綜複雜,傳輸的內容更是花裏胡哨,所以網絡協議也比較複雜,互聯網中常用的代表性的協議有IP、TCP、HTTP等,LAN中常用協議有IPX、SPX等

“計算機網絡體系結構”將這些網絡協議進行了系統的歸納,就形成了協議簇,TCP/IP就是這些協議的集合。
在這裏插入圖片描述
計算機通信誕生之初,系統化與標準化未收到重視,不同廠商只出產各自的網絡來實現通信,這樣就造成了對用戶使用計算機網絡造成了很大障礙,缺乏靈活性和可擴展性

爲解決該問題,ISO(國際標準化組織)制定了一個國際標準OSI(開放式通信系統互聯參考模型)

TCP/IP並非ISO指定,是由IETF(國際互聯網工程任務組)建議、致力推進標準化的一種協議,其中,大學等研究機構和計算機行業是推動標準化的核心力量,現已成爲業界標準協議

協議的標準化也推動了計算機網絡的普及

3、OSI參考模型

ISO在指定標準的OSI之前,提出了作爲通信協議設計指標的OSI參考模型,將協議分爲七層,使得原來複雜的網絡協議更加簡單化。
實際上,分組通信協議很複雜,OSI參考模型將其分爲了易於理解的七個分層,如下圖:
在這裏插入圖片描述

3.1、物理層

物理層位於OSI模型最底層,主要包含網線、光纖、網卡和其它一些通訊必備的硬件,這一層主要是把二進制準換成光或電信號傳輸。

在這一層,數據的單位稱爲比特(bit)

3.2、數據鏈路層

第2層是數據鏈路層(Data Link Layer)
像網橋、交換機、MAC地址、交換機或者網卡和驅動程序等就是在第2層的範疇,以太網等協議就運行在此層,第2層主要是把數據幀轉換成二進制位供第1層(物理層)處理。

在這一層,數據的單位稱爲幀(frame)

3.3、網絡層

在計算機網絡中進行通信的兩個計算機之間可能會經過很多個數據鏈路,也可能還要經過很多通信子網。網絡層的任務就是選擇合適的網間路由和交換結點, 確保數據及時傳送。網絡層將數據鏈路層提供的幀組成數據包,這一層主要功能是地址解析路由。IP地址就屬於這一層的概念

在這一層,數據的單位稱爲數據包(packet)

3.4、傳輸層

只在通信雙方的節點上(比如計算機終端)進行處理,而無需在路由器上處理,傳輸層是OSI中最重要、最關鍵的一層,是唯一負責總體的數據傳輸和數據控制的一層;

傳輸層提供端到端的交換數據的機制,檢查分組編號與次序,傳輸層對其上三層如會話層等,提供可靠的傳輸服務,對網絡層提供可靠的目的地站點信息主要功能

在這一層,數據的單位稱爲數據段(segment)

3.5、會話層

這一層也可以稱爲會晤層或對話層,在會話層及以上的高層次中,數據傳送的單位不再另外命名,統稱爲報文。會話層不參與具體的傳輸,它提供包括訪問驗證和會話管理在內的建立和維護應用之間通信的機制。如服務器驗證用戶登錄便是由會話層完成的。

PS:其實在應用層、表示層、會話層這三層,協議可以共用:
在這裏插入圖片描述

3.6、表示層

將應用處理的信息轉換爲適合網絡傳輸的格式,或將來自下一層的數據轉換爲上層能夠處理的格式;主要負責數據格式的轉換,確保一個系統的應用層信息可被另一個系統應用層讀取。

數據的壓縮和解壓縮, 加密和解密等工作都由表示層負責。

3.7、應用層

第7層也稱作“應用層”(Application Layer),是專門用於應用程序的。應用層確定進程之間通信的性質以滿足用戶需要以及提供網絡與用戶應用軟件之間的接口服務。如果你的程序需要一種具體格式的數據,你可以創造一些你希望能夠把數據發送到目的地的格式,並且創建一個第7層協議。SMTP、DNS和FTP都是7層協議。

4、連接方式

4.1、面向有連接型

在這裏插入圖片描述
發送數據之前,需要在收發主機之間建立一條通信線路,在通信傳輸前後,專門進行建立和斷開連接的處理,如果與對端之間無法通信,可避免發送無謂的數據

4.2、面向無連接型

在這裏插入圖片描述
這種類型不要求建立和斷開連接,發送端可任何時候發送數據,接收端也不知道自己何時從哪裏接受數據,這種情況下,接收端需要時常確認是否收到數據,彼此也不需要確認對方是否存在

4.3、電路交換

電路交換中,交換機主要負責數據的中轉處理;計算機與交換機相連接,交換機之間由衆多通信線路連接,計算機發送數據時,需要先連接電路,建立連接,即可進行通信,直到連接被斷開

4.4、分組交換

最初,一臺計算機收發信息時會獨佔整個電路,其他計算機只能等待,且無法預測何時結束通信,爲解決這個問題,將發送的數據分爲多個數據包,按一定的順序排列後發送,這就是分組交換,TCP/IP便屬於分組交換
在這裏插入圖片描述
分組交換中,由分組交互機(路由器)連接通信線路;在每個分組首部寫入發送端與接收端地址(即同一條線路同時爲多個用戶服務),也可以確認區分每個分組的數據目的地,以及它與哪臺計算機通信

分組交換的大致處理過程:發送端將數據分組分給路由器,路由器收到後緩存到自己的緩衝區,然後再轉發給目標計算機;因此,分組交換也稱爲:蓄積交換

路由器收到收據會按照順序進行緩存至相應隊列,然後以先進先出順序將其逐一發送(有時會優先發送目標地址較特殊的數據)

**分組交換的缺陷:**分組交換中,通信線路共享,因此,通信傳輸速度可能有差異,根據網絡擁堵情況,數據到達目標地址時間長短不同;另外,路由器緩存飽和或溢出時,可能發生數據丟失,無法發送到接收端的情況。

電路交換和分組交換的特點:
在這裏插入圖片描述

4.5、 根據接收端數據分類

4.5.1 單播

簡單來說就是一對一通信,最早的固定電話就是單播通信的一個典型例子

4.5.2 廣播

將消息從一臺主機發送給與之相連的其他所有主機;典型例子就是電視播放(將電視信號一齊發送給非特定的多個連接對象)

4.5.3 多播

與廣播類似,也是將消息發送給多個相連接的接收主機;不同之處在於多播要限定某一組主機作爲接收端

4.5.4 任播

在特定的多臺主機中選擇一臺作爲接收端的一種通信方式(從目標主機羣中選擇一臺最符合的主機作爲目標主機發送消息,一般被選中的主機將返回一個單播信號,隨後發送端只會和這臺主機通信)
在實際的應用中有DNS根域名解析服務器

在這裏插入圖片描述

5、網絡地址

通信傳輸中,發送端和接收端可以被視爲通信主體,它們由“地址”加以標識,在計算機通信中,每一層協議的地址都不同

5.1、地址的唯一性

通信地址必須明確的表示一個主體對象,以便確認通信主體,同一個網絡中不允許有2個相同的通信主體存在,這就是地址的唯一性

5.2、地址的層次性

地址總數不多的情況下,有了唯一地址就可以定位相互通信的主體;如果地址總數比較多,那麼想要高效的定位通信主體,就需要讓地址具有層次性

比如:MAC和IP地址在標識一個通信主體時都具有唯一性,但只有IP地址具有層次性

MAC地址由製造商製造的網卡,通過識別製造商號,製造商內部產品編號以及產品通用編號來確保MAC地址的唯一性

IP地址由網絡號和主機號2部分組成,即通信主體IP地址不同,若主機號不同,網絡號相同,說明其處於同一個網段

網絡通信中,每個節點都會根據分組數據的地址信息,參考一個發出接口列表,來判斷報文應該由哪個網卡發送出去,其中,MAC和IP的區別在於:

MAC:尋址參考的表叫做地址轉發表,其中所記錄的實際上MAC地址本身

IP:尋址參考的表叫做路由控制表,其中所記錄的IP地址是集中了之後的網絡號(網絡號與子網掩碼)

6、網絡的構成

在這裏插入圖片描述
搭建網絡的主要設備及其作用:
在這裏插入圖片描述

6.1、中繼器

OSI模型中第一層——物理層面上延長網絡的設備;由電纜傳過來的波信號或光信號,經由中繼器波形調整和放大再傳給兩一個電纜
在這裏插入圖片描述

6.2、網橋(2層交換機)

網橋是在OSI模型第二層——數據鏈路層面上連接2個網絡的設備;它可以識別數據鏈路層中的數據幀,並將數據幀臨時存儲於內存,再重新生成一個全新幀轉發給相連的另一個網段

網橋能夠連接不同傳輸速率的數據鏈路,並且不限制連接網段的個數
在這裏插入圖片描述

6.3、路由器(3層交換機)

OSI模型第三層——網絡層面上連接2個網絡、並對分組報文進行轉發的設備,根據IP地址進行處理;TCP/IP中網絡層地址就成爲了IP地址
在這裏插入圖片描述

6.4、網關

OSI模型中負責將從傳輸層應用層的數據進行轉換和轉發的設備;處理傳輸層及以上的數據
網關不僅轉發數據還對其進行轉換,通常會使用一個表示層或應用層網關,在不能直接通信的協議間進行翻譯,最終實現通信
在這裏插入圖片描述
資料:TCP/IP協議(一)網絡基礎知識

下一篇:Android網絡編程(二):TCP/IP協議詳解

目錄: Android網絡編程系統性學習目錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章