1. 計算機網路的由來 稍微簡化 又能概括出大致意思的!!!
最初的計算機價格很貴,體積很龐大,只能放置在專門的機房,在需要用到計算機時到機房去及計算。在這種情況下,計算機很多時候是空閑的,這就造成了資源的浪費。因此當時利用電話線路和數據機連接到計算機上,另一端連到不同的辦公室的終端設備上,是大家利用終端來共享一台主機,提高主機的利用率。這是第一代計算機網路,又稱為面向終端的網路。
隨著網路中的主機越來越多,每台主機連接的終端不同,存儲的數據資料也不同,那麼可不可以將多個主機互聯,是終端可以訪問任意的主機中的資源呢?這就是第二代網路,多個主機之間互聯。又稱為面向通信子網的網路
隨著計算機和網路的發展,計算機生產商越來越多,每個設備廠商都有自己的生產標准,這樣就導致了不同的廠商生產的設備之間不能互通。為了解決這個問題,OSI組織制定了計算機聯網的標准,即OSI參考模型。網路發展到了第三代。又稱為標准化網路
第四代計算機網路是隨著TCP/IP協議的興起,Internet網路的時代
2. 網路協議-- 底層網路知識詳解(從二層到三層)
網線
Hub 採取的是廣播的模式,如果每一台電腦發出的包,宿舍的每個電腦都能收到,那就麻煩了。這就需要解決幾個問題:
這幾個問題,都是第二層, 數據鏈路層 ,也即 MAC 層要解決的問題。 MAC 的全稱是 Medium Access Control ,即媒體訪問控制。控制什麼呢?其實就是控制在往媒體上發數據的時候,誰先發、誰後發的問題。防止發生混亂。這解決的是第二個問題。這個問題中的規則,學名叫 多路訪問 。
三種方式:
方式一:分多個車道。每個車一個車道,你走你的,我走我的。這在計算機網路里叫作 信道劃分 ;
方式二:今天單號出行,明天雙號出行,輪著來。這在計算機網路里叫作 輪流協議 ;
方式三:不管三七二十一,有事兒先出門,發現特堵,就回去。錯過高峰再出。我們叫作 隨機接入協議 。著名的乙太網,用的就是這個方式。
接下來要解決第一個問題:發給誰,誰接收?這里用到一個物理地址,叫作 鏈路層地址 。但是因為第二層主要解決媒體接入控制的問題,所以它常被稱為 MAC 地址 。
解決第一個問題就牽扯到第二層的網路包格式。
對於乙太網,第二層的最後面是 CRC,也就是循環冗餘檢測。通過 XOR 異或的演算法,來計算整個包是否在發送的過程中出現了錯誤,主要解決第三個問題。
這里還有一個沒有解決的問題,當源機器知道目標機器的時候,可以將目標地址放入包裡面,如果不知道呢?一個廣播的網路裡面接入了 N 台機器,我怎麼知道每個 MAC 地址是誰呢?這就是 ARP 協議 ,也就是已知 IP 地址,求 MAC 地址的協議。
ARP 是通過吼的方式(廣播)來尋找目標 MAC 地址的,吼完之後記住一段時間,這個叫作緩存。
誰能知道目標 MAC 地址是否就是連接某個口的電腦的 MAC 地址呢?這就需要一個能把 MAC 頭拿下來,檢查一下目標 MAC 地址,然後根據策略轉發的設備,這個設備顯然是個二層設備,我們稱為 交換機 。
交換機是有 MAC 地址學習能力的,學完了它就知道誰在哪兒了,不用廣播了。(剛開始不知道的時候,是需要廣播的)
當交換機的數目越來越多的時候,會遭遇環路問題,讓網路包迷路,這就需要使用 STP 協議,通過華山論劍比武的方式,將有環路的圖變成沒有環路的樹,從而解決環路問題。
在數據結構中,有一個方法叫做 最小生成樹 。有環的我們常稱為圖。將圖中的環破了,就生成了樹。在計算機網路中,生成樹的演算法叫作 STP ,全稱 Spanning Tree Protocol 。
STP 協議比較復雜,一開始很難看懂,但是其實這是一場血雨腥風的武林比武或者華山論劍,最終決出五嶽盟主的方式。
交換機數目多會面臨隔離問題,可以通過 VLAN 形成 虛擬區域網 ,從而解決廣播問題和安全問題。
對於支持 VLAN 的交換機,有一種口叫作 Trunk 口。它可以轉發屬於任何 VLAN 的口。交換機之間可以通過這種口相互連接。
ping 是基於 ICMP 協議工作的。
ICMP 全稱 Internet Control Message Protocol ,就是 互聯網控制報文協議 。
ICMP 報文是封裝在 IP 包裡面的。因為傳輸指令的時候,肯定需要源地址和目標地址。它本身非常簡單。因為作為偵查兵,要輕裝上陣,不能攜帶大量的包袱。
ICMP總結:
ICMP 相當於網路世界的偵察兵。我講了兩種類型的 ICMP 報文,一種是主動探查的查詢報文,一種異常報告的差錯報文;
ping 使用查詢報文,Traceroute 使用差錯報文。
在進行網卡配置的時候,除了 IP 地址,還需要配置一個Gateway 的東西,這個就是 網關 。
一旦配置了 IP 地址和網關,往往就能夠指定目標地址進行訪問了。由於在跨網關訪問的時候,牽扯到 MAC 地址和 IP 地址的變化,這里有必要詳細描述一下 MAC 頭和 IP 頭的細節。
路由器是一台設備,它有五個網口或者網卡,相當於有五隻手,分別連著五個區域網。每隻手的 IP 地址都和區域網的 IP 地址相同的網段,每隻手都是它握住的那個區域網的網關。
對於 IP 頭和 MAC 頭哪些變、哪些不變的問題,可以分兩種類型。我把它們稱為「歐洲十國游」型和「玄奘西行」型。
之前我說過, MAC 地址是一個區域網內才有效的地址。因而,MAC 地址只要過網關,就必定會改變,因為已經換了區域網 。
兩者主要的區別在於 IP 地址是否改變。不改變 IP 地址的網關,我們稱為 轉發網關 ;改變 IP 地址的網關,我們稱為 NAT 網關 。
網關總結:
路由分靜態路由和動態路由,靜態路由可以配置復雜的策略路由,控制轉發策略;
動態路由主流演算法有兩種, 距離矢量演算法 和 鏈路狀態演算法 。
距離矢量路由(distance vector routing)。它是基於 Bellman-Ford 演算法的。
這種演算法的基本思路是,每個路由器都保存一個路由表,包含多行,每行對應網路中的一個路由器,每一行包含兩部分信息,一個是要到目標路由器,從那條線出去,另一個是到目標路由器的距離。
由此可以看出,每個路由器都是知道全局信息的。那這個信息如何更新呢?每個路由器都知道自己和鄰居之間的距離,每過幾秒,每個路由器都將自己所知的到達所有的路由器的距離告知鄰居,每個路由器也能從鄰居那裡得到相似的信息。
每個路由器根據新收集的信息,計算和其他路由器的距離,比如自己的一個鄰居距離目標路由器的距離是 M,而自己距離鄰居是 x,則自己距離目標路由器是 x+M。
這種演算法存在的問題:
第一個問題:好消息傳得快,壞消息傳得慢。
第二個問題:每次發送的時候,要發送整個全局路由表。
所以上面的兩個問題,限制了距離矢量路由的網路規模。
鏈路狀態路由(link state routing),基於 Dijkstra 演算法。
這種演算法的基本思路是:當一個路由器啟動的時候,首先是發現鄰居,向鄰居 say hello,鄰居都回復。然後計算和鄰居的距離,發送一個 echo,要求馬上返回,除以二就是距離。然後將自己和鄰居之間的鏈路狀態包廣播出去,發送到整個網路的每個路由器。這樣每個路由器都能夠收到它和鄰居之間的關系的信息。因而,每個路由器都能在自己本地構建一個完整的圖,然後針對這個圖使用 Dijkstra 演算法,找到兩點之間的最短路徑。
不像距離距離矢量路由協議那樣,更新時發送整個路由表。鏈路狀態路由協議只廣播更新的或改變的網路拓撲,這使得更新信息更小,節省了帶寬和 CPU 利用率。而且一旦一個路由器掛了,它的鄰居都會廣播這個消息,可以使得壞消息迅速收斂。
基於兩種演算法產生兩種協議,BGP 協議和 OSPF 協議。
OSPF(Open Shortest Path First,開放式最短路徑優先) 就是這樣一個基於鏈路狀態路由協議,廣泛應用在數據中心中的協議。由於主要用在數據中心內部,用於路由決策,因而稱為 內部網關協議(Interior Gateway Protocol,簡稱 IGP) 。
內部網關協議的重點就是找到最短的路徑。在一個組織內部,路徑最短往往最優。當然有時候 OSPF 可以發現多個最短的路徑,可以在這多個路徑中進行負載均衡,這常常被稱為 等價路由 。
但是外網的路由協議,也即國家之間的,又有所不同。我們稱為 外網路由協議(Border Gateway Protocol,簡稱 BGP) 。
在網路世界,這一個個國家成為自治系統 AS(Autonomous System)。自治系統分幾種類型。
每個自治系統都有邊界路由器,通過它和外面的世界建立聯系。
BGP 又分為兩類, eBGP 和 iBGP 。自治系統間,邊界路由器之間使用 eBGP 廣播路由。內部網路也需要訪問其他的自治系統。邊界路由器如何將 BGP 學習到的路由導入到內部網路呢?就是通過運行 iBGP,使得內部的路由器能夠找到到達外網目的地的最好的邊界路由器。
BGP 協議使用的演算法是 路徑矢量路由協議 (path-vector protocol)。它是距離矢量路由協議的升級版。
前面說了距離矢量路由協議的缺點。其中一個是收斂慢。在 BGP 裡面,除了下一跳 hop 之外,還包括了自治系統 AS 的路徑,從而可以避免壞消息傳得慢的問題,也即上面所描述的,B 知道 C 原來能夠到達 A,是因為通過自己,一旦自己都到達不了 A 了,就不用假設 C 還能到達 A 了。
另外,在路徑中將一個自治系統看成一個整體,不區分自治系統內部的路由器,這樣自治系統的數目是非常有限的。就像大家都能記住出去玩,從中國出發先到韓國然後到日本,只要不計算細到具體哪一站,就算是發送全局信息,也是沒有問題的。
參考:
極客時間-趣談網路協議
極客時間-趣談網路協議
極客時間-趣談網路協議
極客時間-趣談網路協議-網關
3. 誰知道什麼是計算機網路,舉例說明計算機網路有哪些應用
1.計算機網路,是指將地理位置不同的具有獨立功能的多台計算機及其外部設備,通過通信線路連接起來,在網路操作系統,網路管理軟體及網路通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統。
2.電腦及系統、伺服器、通信設備、傳輸介質、!!
常見:匯流排拓撲結構 星型拓撲結構 環形拓撲結構!!
4.計算機網路協議是有關計算機網路通信的一整套規則,或者說是為完成計算機網路通信而制訂的規則、約定和標准。
5.TCP/IP!! OSI七層協議的名稱:應用層(Application Layer)。
6.(1)可實現資源共享。(2)可實現管理科學化和專業化。
(3)可快速進行信息處理。 (4)能更好地保護原有的資源。
7.FTP:文件傳輸!! Telnet:遠程登陸服務
8.IP地址就像你家的地址!! 域名就是為這個地址取個名字!!
9.超文本就是不僅僅只有文本,還可能有媒體(圖片 視頻...)
10:HTML:超文本標示語言(網頁文件的拓展名)!!
主頁:一般指個人網站!!
11:GOOGLE YAHOO BAIDU... 打開他們的首頁輸入相應的信息就可以查詢!!
12.電子郵件(electronic mail,簡稱E-mail,標志:@,也被大家昵稱為「伊妹兒」)又稱電子信箱、電子郵政,它是—種用電子手段提供信息交換的通信方式。
標題 收信人地址 內容(可能還會有附件!)
我這答案准對!!
我上學的時候就是這樣回答的!!不對讓你老師來找我!!
4. 談談你對計算機和網路的看法
寫作思路:確立中心,圍繞選材,確定重點,安排詳略,選材時要注意緊緊圍繞文章的中心思想,選擇真實可信、新鮮有趣的材料,以使文章中心思想鮮明、深刻地表現出來。
正文:
計算機網路是計算技術,通訊技術和微電子技術相結合的產物,無疑是現代信息革命的一個非常重要的方面。隨著網路技術的誕生,人類的社會經濟生產有了大幅度的提高,人們的生產生活發生了大的改變。人們坐在家裡就可以完成過去要跑好多路,浪費好長時間才可以完成的任務,享受過去找好多人或查找好多書才能享受到的精神幸福,可以說,你掌握了網路技術,你就擁有了整個世界,你就不用再受過去學習,工作所要受到的好多痛苦。
但是,網路技術同時又給一些不法之徒製造了新的犯罪機會和犯罪手段,給執法機關製造了新的麻煩。比如,網路黑客入侵機關企業電腦,網路詐騙。也給一些自製力差的青少年提供了沉溺於玩耍娛樂的手段,比如,結交約會異性朋友,游戲棋牌等。給青少年的學校學習帶來影響,給家長教育出了一道難題。
5. 計算機網路的理解
什麼是計算機網路
計算機網路(Computer Network)是利用通信設備和線路將地理位置不同的、功能獨立的多個計算機系統連接起來,以功能完善的網路軟體實現網路的硬體、軟體及資源共享和信息傳遞的系統。簡單的說即連接兩台或多台計算機進行通信的系統。
(1)20世紀50~60年代,出現以單個計算機為中心的遠程連機系統,構成面向終端的計算機網路;
(2)20世紀60~70年代,出現了多個主計算機通過通信線路互連的計算機網路。ARPANET投入使用;
(3)世紀70~80年代,出現具有統一的網路體系結構,遵循國際標准化協議的計算機網路。
(4)從90年代算起,網路互聯與高速網路。
6. 計算機網路是如何產生的
1969年美國國防部創建了第一個分組交換網ARPAnet只是一個單個的分組交換網。
產生的原因:20世紀60年代,美蘇冷戰期間,美國國防部領導的遠景研究規劃局ARPA提出要研製一種嶄新的網路對付來自前蘇聯的核攻擊威脅。
因為當時,傳統的電路交換的電信網雖已經四通八達,但戰爭期間,一旦正在通信的電路有一個交換機或鏈路被炸,則整個通信電路就要中斷,如要立即改用其他迂迴電路,還必須重新撥號建立連接,這將要延誤一些時間。
(6)計算機網路趣談擴展閱讀
計算機網路的分類與一般的事物分類方法一樣,可以按事物所具有的不同性質特點(即事物的屬性)分類。計算機網路通俗地講就是由多台計算機(或其它計算機網路設備)通過傳輸介質和軟體物理(或邏輯)連接在一起組成的。
總的來說計算機網路的組成基本上包括:計算機、網路操作系統、傳輸介質(可以是有形的,也可以是無形的,如無線網路的傳輸介質就是空間)以及相應的應用軟體四部分。
7. 計算機網路講什麼
計算機網路講的是計算機網路的基礎設施如何架構,例如一個學校要建校園網,那麼這張網就是一張計算機網路,首先要保證用戶可以接入,例如機房,學生宿舍等。整個網路當然還要設立核心機房保證全網的聯通性,數據中心,網管中心等,數據中心大多是一些伺服器,學校的網站就可以架在上面,學校有些內部的資料下載中心,也可以架在上面。
學生在校園內訪問網路,優酷等站點,需要校園網接入電信運營商的網路。聯通,電信,移動等等就是電信運營商,也稱ISP。每個ISP都有自己的業務網,例如電信有163,CN2,163是比較老的網路,負責接入普通家庭客戶等,CN2負責接入有專網需求的大型客戶,而設計,建設ISP的網路,也屬於計算機網路的范疇。
8. 什麼是計算機網路,舉例說明計算機網路有哪些應用
計算機網路,是指將地理位置不同的具有獨立功能的多台計算機及其外部設備,通過通信線路連接起來,在網路操作系統,網路管理軟體及網路通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統。
定義分類
按廣義定義
計算機網路也稱計算機通信網。關於計算機網路的最簡單定義是:一些相互連接的、以共享資源為目的的、自治的計算機的集合。若按此定義,則早期的面向終端的網路都不能算是計算機網路,而只能稱為聯機系統(因為那時的許多終端不能算是自治的計算機)。但隨著硬體價格的下降,許多終端都具有一定的智能,因而「終端」和「自治的計算機」逐漸失去了嚴格的界限。若用微型計算機作為終端使用,按上述定義,則早期的那種面向終端的網路也可稱為計算機網路。
另外,從邏輯功能上看,計算機網路是以傳輸信息為基礎目的,用通信線路將多個計算機連接起來的計算機系統的集合,一個計算機網路組成包括傳輸介質和通信設備。
從用戶角度看,計算機網路是這樣定義的:存在著一個能為用戶自動管理的網路操作系統。由它調用完成用戶所調用的資源,而整個網路像一個大的計算機系統一樣,對用戶是透明的。
一個比較通用的定義是:利用通信線路將地理上分散的、具有獨立功能的計算機系統和通信設備按不同的形式連接起來,以功能完善的網路軟體及協議實現資源共享和信息傳遞的系統。
從整體上來說計算機網路就是把分布在不同地理區域的計算機與專門的外部設備用通信線路互聯成一個規模大、功能強的系統,從而使眾多的計算機可以方便地互相傳遞信息,共享硬體、軟體、數據信息等資源。簡單來說,計算機網路就是由通信線路互相連接的許多自主工作的計算機構成的集合體。
最簡單的計算機網路就只有兩台計算機和連接它們的一條鏈路,即兩個節點和一條鏈路。
按連接定義
計算機網路就是通過線路互連起來的、資質的計算機集合,確切的說就是將分布在不同地理位置上的具有獨立工作能力的計算機、終端及其附屬設備用通信設備和通信線路連接起來,並配置網路軟體,以實現計算機資源共享的系統。
按需求定義
計算機網路就是由大量獨立的、但相互連接起來的計算機來共同完成計算機任務。這些系統稱為計算機網路(computer networks)[2]
發展歷程
中國計算機網路設備製造行業是改革開放後成長起來的,早期與世界先進水平存在巨大差距;但受益於計算機網路設備行業生產技術不斷提高以及下游需求市場不斷擴大,我國計算機網路設備製造行業發展十分迅速。近兩年,隨著我國國民經濟的快速發展以及國際金融危機的逐漸消退,計算機網路設備製造行業獲得良好發展機遇,中國已成為全球計算機網路設備製造行業重點發展市場。
2010年我國計算機網路設備製造行業規模以上企業有171家,全年實現銷售收入385.70億元,同比增長15.64%;實現利潤總額39.83億元,同比增長24.93%;產品銷售利潤為72.18億元,同比增長44.34%。2011年,在國內宏觀經濟向好的環境及電信產業投資高速增長產生的需求帶動下,計算機網路設備製造行業將繼續保持較好發展。2011年1-5月,計算機網路設備製造行業銷售收入較上年同期增長19.78%;利潤總額較上年同期增長48.61%;產品銷售利潤則較上年同期增長42.36%。
我國計算機網路設備製造企業主要分布在華東和華南地區,其中又以廣東、江蘇、浙江三地企業分布最為集中,且是全國計算機網路設備製造行業發展領先的地區,2010年行業銷售收入均在84億元以上。與此同時,四川、湖北及上海地區的計算機網路設備製造行業也得到了快速發展,2010年銷售收入增長率均在30%以上。
第一代計算機網路---遠程終端聯機階段;
第二代計算機網路---計算機網路階段;
第三代計算機網路---計算機網路互聯階段;
第四代計算機網路---國際互聯網與信息高速公路階段;
早期年代
過去人們開始將彼此獨立發展的計算機技術與通信技術結合起來,完成了數據通信與計算機通信網路的研究,為計算機網路的出現做好了技術准備,奠定了理論基礎。
分組交換
網路符號
20世紀60年代,美蘇冷戰期間,美國國防部領導的遠景研究規劃局ARPA提出要研製一種嶄新的網路對付來自前蘇聯的核攻擊威脅。因為當時,傳統的電路交換的電信網雖已經四通八達,但戰爭期間,一旦正在通信的電路有一個交換機或鏈路被炸,則整個通信電路就要中斷,如要立即改用其他迂迴電路,還必須重新撥號建立連接,這將要延誤一些時間。這個新型網路必須滿足一些基本要求:
1:不是為了打電話,而是用於計算機之間的數據傳送。
2:能連接不同類型的計算機。
3:所有的網路節點都同等重要,這就大大提高了網路的生存性。
4:計算機在通信時,必須有迂迴路由。當鏈路或結點被破壞時,迂迴路由能使正在進行的通信自動地找到合適的路由。
5:網路結構要盡可能地簡單,但要非常可靠地傳送數據。
根據這些要求,一批專家設計出了使用分組交換的新型計算機網路。而且,用電路交換來傳送計算機數據,其線路的傳輸速率往往很低。因為計算機數據是突發式地出現在傳輸線路上的,比如,當用戶閱讀終端屏幕上的信息或用鍵盤輸入和編輯一份文件時或計算機正在進行處理而結果尚未返回時,寶貴的通信線路資源就被浪費了。
分組交換是採用存儲轉發技術。把欲發送的報文分成一個個的「分組」,在網路中傳送。分組的首部是重要的控制信息,因此分組交換的特徵是基於標記的。分組交換網由若干個結點交換機和連接這些交換機的鏈路組成。從概念上講,一個結點交換機就是一個小型的計算機,但主機是為用戶進行信息處理的,結點交換機是進行分組交換的。每個結點交換機都有兩組埠,一組是與計算機相連,鏈路的速率較低。一組是與高速鏈路和網路中的其他結點交換機相連。注意,既然結點交換機是計算機,那輸入和輸出埠之間是沒有直接連線的,它的處理過程是:將收到的分組先放入緩存,結點交換機暫存的是短分組,而不是整個長報文,短分組暫存在交換機的存儲器(即內存)中而不是存儲在磁碟中,這就保證了較高的交換速率。再查找轉發表,找出到某個目的地址應從那個埠轉發,然後由交換機構將該分組遞給適當的埠轉發出去。各結點交換機之間也要經常交換路由信息,但這是為了進行路由選擇,當某段鏈路的通信量太大或中斷時,結點交換機中運行的路由選擇協議能自動找到其他路徑轉發分組。通訊線路資源利用率提高:當分組在某鏈路時,其他段的通信鏈路並不被通信的雙方所佔用,即使是這段鏈路,只有當分組在此鏈路傳送時才被佔用,在各分組傳送之間的空閑時間,該鏈路仍可為其他主機發送分組。可見採用存儲轉發的分組交換的實質上是採用了在數據通信的過程中動態分配傳輸帶寬的策略。
網際網路時代
Internet的基礎結構大體經歷了三個階段的演進,這三個階段在時間上有部分重疊。
網際網路
1:從單個網路ARPAnet向互聯網發展:1969年美國國防部創建了第一個分組交換網ARPAnet只是一個單個的分組交換網,所有想連接在它上的主機都直接與就近的結點交換機相連,它規模增長很快,到70年代中期,人們認識到僅使用一個單獨的網路無法滿足所有的通信問題。於是ARPA開始研究很多網路互聯的技術,這就導致後來的互聯網的出現。1983年TCP/IP協議稱為ARPAnet的標准協議。同年,ARPAnet分解成兩個網路,一個進行試驗研究用的科研網ARPAnet,另一個是軍用的計算機網路MILnet。1990,ARPAnet因試驗任務完成正式宣布關閉。
2:建立三級結構的網際網路:1985年起,美國國家科學基金會NSF就認識到計算機網路對科學研究的重要性,1986年,NSF圍繞六個大型計算機中心建設計算機網路NSFnet,它是個三級網路,分主幹網、地區網、校園網。它代替ARPAnet成為internet的主要部分。1991年,NSF和美國政府認識到網際網路不會限於大學和研究機構,於是支持地方網路接入,許多公司的紛紛加入,使網路的信息量急劇增加,美國政府就決定將網際網路的主幹網轉交給私人公司經營,並開始對接入網際網路的單位收費。
3:多級結構網際網路的形成:1993年開始,美國政府資助的NSFnet就逐漸被若干個商用的網際網路主幹網替代,這種主幹網也叫網際網路服務提供者ISP,考慮到網際網路商用化後可能出現很多的ISP,為了使不同ISP經營的網路能夠互通,在1994創建了4個網路接入點NAP分別由4個電信公司經營,本世紀初,美國的NAP達到了十幾個。NAP是最高級的接入點,它主要是向不同的ISP提供交換設備,使它們相互通信。網際網路已經很難對其網路結構給出很精細的描述,但大致可分為五個接入級:網路接入點NAP,多個公司經營的國家主幹網,地區ISP,本地ISP,校園網、企業或家庭PC機上網用戶。
9. 什麼是算機網路
計算機網路(computer network),簡稱網路,是利用通信設備和線路將地理位置不同的、功能獨立的多個計算機系統連接起來,以功能完善的網路軟體實現網路的硬體、軟體及資源共享和信息傳遞的系統,簡單的說即連接兩台或多台計算機進行通信的系統。最著名的計算機網路是網際網路。 計算機網路支持大量應用程序和服務,例如訪問萬維網、共享文件伺服器、列印機、電子郵件和即時通訊等。
計算機網路也稱計算機通信網。關於計算機網路的最簡單定義是:一些相互連接的、以共享資源為目的的、自治的計算機的集合。若按此定義,則早期的面向終端的網路都不能算是計算機網路,而只能稱為聯機系統(因為那時的許多終端不能算是自治的計算機)。但隨著硬體價格的下降,許多終端都具有一定的智能,因而「終端」和「自治的計算機」逐漸失去了嚴格的界限。若用微型計算機作為終端使用,按上述定義,則早期的那種面向終端的網路也可稱為計算機網路。
另外,從邏輯功能上看,計算機網路是以傳輸信息為基礎目的,用通信線路將多個計算機連接起來的計算機系統的集合,一個計算機網路組成包括傳輸介質和通信設備。
10. 華為資深工程師總結的這本435頁的書,居然把網路協議給趣談了
苦且繞不過去。經過多次放棄之後,我發現在我的職業生涯中,網路這一關無論如何也繞不過去。本來覺得寫Java程序時可以依賴別人的庫,所以就不用關心這么多底層的技術了,但是到後來才發現,服務數量一多,吞吐量一大,我們關心的不再僅僅是某個Java應用,而是要提升整個集群的性能,這時網路問題就會出現。而且大規模的微服務架構必定要上雲、使用VPC網路,這時就必定要考慮雙活和災備,必定要做各個層次的負載均衡,這些都需要網路方面的技術。既然繞不過去,那就必須「啃」下它,於是我就進入了暗無天日的網路協議學習的過程。
見山開路、遇水搭橋,遇到一個知識點攻克一個,再將其寫到博客或者筆記裡面。有時候要看很多文章和書才能攻克一個知識點,但我還是每天下班抱著網路技術相關的文章和書看,直到將各個零散的知識點串連了起來。後來在定位網路問題的時候,我開始有了自己的思路,這時才感覺算是暫時趟過了這條河。
網路協議知識點太多,學完記不住。大部分讀者應該都學過計算機網路課程,學的時候感覺並不難,尤其這門課沒有公式,更像是文科的東西。學了一大堆東西,也背了一大堆東西,但是最終應付完考試之後,都「還給了老師」
每次都感覺自己好像學會了,但實際應用的時候依舊無從下手。雖然很多細節都摸索得差不多了,但是當自己去應用和調試時,才發現還是沒有任何思路。比如,當創建出來的虛擬機不能上網時,還是無從下手,學過的很多東西,似乎都用不上。我把這種現象總結為:一看覺得懂,一問就打鼓,一用就糊塗。
所以本書使用了「趣談」這種方式,它可以解決從「入門到放棄」的問題,把晦澀的知識點和一些有趣的故事通過比喻的方式結合起來,這樣更容易幫助讀者系統、深入地了解網路技術的知識點和大致的工作流程。
主要包括的內容和總結三部分給大家進行網路協議的拓展學習,希望大家能夠喜歡!!
第1 章 通信協議概述
1.1 為什麼要學習網路協議
相信大家都信過通天塔的故事,上帝為了阻止人類聯合起來,讓人類說不同的語言,人類沒法溝通,達不成「協議", 通天塔的計劃就失敗了。
但是千年以後,有一種叫「程序猿」的物種,「敲」著一種這個群體通用的語言,打造著互聯網世界的「通天塔」。如今的世界,正是因為互聯網,才連接在一起。
如果你是程序員,一定看得懂上面這一段文字。這是每一個程序員向計算機世界說「你好,世界」的方式。但是,你不一定知道,這段文字也是一種協議,是人類和計算機溝通的協議,只有通過這種協議,計算機才知道我們想讓它做什麼。
第 2 章 從二層到三層
2.1 從物理層到MAC 層:如何在宿舍里自己組網玩聯機游戲
第一層:物理層
路由器的使用發生在第三層上。我們先從第一層物理層開始說。
物理層能折騰什麼?現在的同學可能想不到,我們當時去學校配電腦的地方買網線,賣網線的師傅都會問,你的網線是要電腦連電腦啊,還是電腦連網口啊?
我們要的是電腦連電腦的網線。就是將一根網線的一頭插在一台電腦的網卡上,另一頭插在另一台電腦的網卡上。但是在當時,用普通的網線這樣連接是通不了的,所以水晶頭要做交叉線,用的就是所謂的1-3,2-6交叉接法。
水晶頭的第l、2腳和第3'6腳,分別起著WL發信號的作用。將一端的1號線和3號線、2號線和6號線互換一下位置,就能夠在物理層實現兩端通信。
當然電腦連電腦,除了網線要交叉,還需要配置這兩台電腦的IP地址、子網掩碼和默認網關。這3個概念前文已經詳細描述過了。要想兩台電腦能夠通信,兩台電腦的這3項必須屬於一個網路,否則是行不通的。
第二層:MAC層
你可能已經發現問題了。Hub採取的是廣播的模式,如果每一台電腦發出的網路包,宿舍里的每台電腦都能收到,那就麻煩了。這時就需要解決以下幾個問題:
這個網路包是發給誰的?誰應該接受?
大家都在發,會不會產生混亂?有沒有誰先發、誰後發的規則?
如果發送的時候出現了錯誤,怎麼辦
這幾個問題,都發生在第二層鏈路層,即MAC層要解決的問題。MAC的全稱是MediumAccess Control,即媒體訪問控制。控制什麼呢?其實就是給媒體發送數據時,控制誰先發、誰後發,防止發生混亂。MAC層解決的是第二個問題,這個問題學名叫多路訪問。有很多演算法可以解決。就像車管所管理車輛一樣,會想出很多辦法,比如以下3種方式。
方式一:分多個車道。每個車一個車道,你走你的,我走我的。這在計算機網路里叫作信道劃分協議。
方式二:今天單號出行,明天雙號出行,輪著來。這在計算機網路里叫作輪流協議。
方式三:不管三七二十一,有事兒先出門,發現特堵,就回去,錯過高峰再出門。這在計算機網路里叫作隨機接入協議。著名的乙太網,用的就是這個協議。
第 3 章 重要的傳輸層
3.1 UDP:雖然簡單但是可以走制化
TCP和UDP有哪些區別
一般在面試時,如果面試官問這兩個協議的區別是什麼,大部分面試者會回答,TCP是面向連接的,UDP是面向無連接的。
什麼叫面向無連接,什麼叫面向無連接呢?在互通之前,面向連接的協議會先建立連接。例如,TCP會進行三次握手來建立連接,而UDP不會。為什麼要建立連接呢?TCP可以進行三次握手,UDP可以發三個包,難道不都是建立連接嗎?
所謂的建立連接,是為了維護客戶端和服務端的連接而去建立一定的數據結構,從而維護雙方交互的狀態,並用這樣的數據結構來保證面向連接的特性。
例如,TCP提供可靠交付。通過TCP連接傳輸的數據能夠無差錯、不丟失、不重復,並且可以按序到達。我們都知道IP包是沒有提供任何可靠性保證的,一旦發出去,就像西天取經,走丟了、被妖怪吃了,都只能隨它去。TCP號稱能做到連接維護程序做的事情,這部分內容在下面兩節中會詳細描述。而UDP繼承了IP包的特性,不保證傳輸的數據不丟失,也不保證按序到達。
再如,TCP是面向位元組流的,發送時發的是一個流,沒頭沒尾。但TCP基於的E層發送的可不是一個流,而是一個個的IP包。到TCP層後之所以變成流,是因為TCP自身的狀態維護做了相應的處理。而UDP則不一樣,它繼承了IP包的特性,也是一個一個地發,一個一個地收。在UDP層發送的一個個數據包,還有-個名字叫數據包。
另外,TCP是可以進行擁塞控制的。它意識到包已經被丟棄或者網路環境變差時,就會根據情況調整自己的行為,看看是不是數據包發得太快了,要不要發慢點。UDP就不會,應用讓我發,我就發,管它洪水滔天。
因而TCP是有狀態服務,通俗地講就是它「有腦子」,它精確地知道數據包是否已經被發送出去、是否被接收、發送到哪兒了、應該接收哪個數據包了,錯一點兒都不行。而UDP則是無狀態服務,通俗地說就是它「沒腦子」,天真無邪,發出去就發出去了,後續就不管了。
如果說MAC層定義了本地區域網的傳輸行為,IP層定義了整個網路端到端的傳輸行為,那麼這兩層就基本定義了這樣的「基因」:網路傳輸是以包為單位的(網路包在不同的層有不同的叫法,鏈路層叫幀,網路層叫包,傳輸層叫段,我們可以籠統地稱之為包),包單獨傳輸,自行選路,在不同的設備上進行封裝、解封裝,不保證到達。基於這個「基因」,生下來的「孩子」UDP就完全繼承了這些特性,幾乎沒有自己的思想。
第 4 章 常用的應用層
4.1 HTTP:看個新聞原來這么麻煩
接下來開始講應用層的協議。就從最常用的HTTP開始講起。
HTTP幾乎是每個人上網用的第一個協議,同時也是很容易被忽略的協議。
既然本節要講看新聞,咱們就先登錄某新聞網站http://www.***·com。
http//www.***.com是一個URL( Uniform Resource Locator,統一資源、定位符)。之所以叫統一,是因為它是有格式的。HTTP稱為協議,www.*忡.com是一個域名,表示互聯網上的一個位置。有的URL會有更詳細的位置標識,例如http://www.***·corn/index.html。正是因為URL是統一的,所以當你把這樣一個字元串輸入到瀏覽器的地址框里進行搜索的時候,瀏覽器才能知道如何進行統一處理。
第 5 章 陌生的數據中心
5.1 DNS:網路世界的地址簿
什麼是DNS伺服器
在網路世界,也是一樣的。你肯定記得住網站的名稱,但是很難記住網站的IP地址,因此也需要一個地址簿,即DNS(Domain Name System,域名系統)伺服器。
由此可見,DNS伺服器在日常生活中多麼重要。每個人上網都需要訪問它。但是同時,這對它來講也是非常大的挑戰。一旦它出了故障,整個互聯網都將癱瘓。另外,上網的人分布在世界各地,如果大家都去同一個地方訪問某個伺服器,時延將會非常大。因而,DNS伺服器一定要設置成高可用、高並發和分布式的。
於是,就有了樹狀的層次結構,如圖所示。
根DNS伺服器:返回頂級域DNS伺服器的IP地址。
頂級DNS伺服器:返回權威DNS伺服器的IP地址。
權威DNS伺服器:返回相應主機的E地址。
第 6 章 雲計算中的網路
6.1 雲中網路:自己拿地成本高,購買公寓更靈活
我們知道了數據中心裏面堆著一大片一大片的機器,相互之間用網路連接。如果機器數量非常多,那麼維護起來還是挺麻煩的,有好多不靈活的地方,比如以下幾點
采購不靈活:如果客戶需要一台電腦,那就需要自己采購、上架、插網線、安裝操作系統,周期非常長。一旦采購了,一用就得好多年,不能退貨,|哪怕業務不做了,機器還在數據中心裡留著。
運維不靈活:一旦需要擴容CPU、內存、硬碟,都需要去機房手動弄,非常麻煩。
規格不靈活:采購的機器往往動不動幾百GB的內存,而每個應用往往可能只需要4核8GB,所以很多應用混合部署在上面,埠可能會相互沖突,容易相互影響。
復用不靈活:一台機器,一旦一個用戶不用了,另外一個用戶,就需要重裝操作系統。
因為原來的操作系統可能遺留著很多數據,非常麻煩。
第 7 章 容器技術中的網路
7.1 容器網路:來去自由的日子,不買公寓去合租
如果說虛擬機是買公寓,容器則相當於合租,有一定的隔離,但是隔離性沒有那麼好。雲計算解決了基礎資源層的彈性伸縮問題,卻沒有解決由於基礎資源層彈性伸縮而帶來的PaaS層應用批量、快速部署問題。於是,容器應運而生。
容器即Container,而Container的另一個意思是集裝箱。其實容器的思想就是要變成軟體交付的集裝箱。集裝箱有兩個特點:一是打包,二是標准。
在沒有集裝箱的時代,假設要將貨物從A運到B,中間要經過三個碼頭、換三次船。那麼每次都要將貨物卸下船來,弄得亂七八糟,然後再搬上船重新擺好,如圖7-1所示。在沒有集裝箱的時候,每次換船,船員們都要在岸上待幾天才能幹完活。
有了尺寸全部都一樣的集裝箱以後,可以把所有的貨物都打包在一起,每次換船的時候,把整個集裝箱搬過去就行了,幾個小時就能完成,船員換船時間大大縮短,如圖7-2所示。這是集裝箱的「打包」和「標准」兩大特點在生活中的應用。
第 8 章 微服務相關協議
8.1 基於XML 的SOAP:不要說NBA,請說美國職業籃球聯賽
ONC RPC存在哪些問題
ONCRPC將客戶端要發送的參數及服務端要發送的回復都壓縮為一個二進制串,這樣固然能夠解決雙方協議約定的問題,但是仍然不方便。
首先,需要雙方的壓縮格式完全一致,一點都不能差。一旦有少許的差錯,多一位、少一位或者錯一位,都可能造成無法解壓縮。當然,我們可以通過提高傳輸層的可靠性,以及加入校驗值等方式來減少傳輸過程中的差錯。
其次,協議修改不靈活。除了傳輸過程中造成的差錯,客戶端因為業務邏輯的改變添加或者刪除了欄位,或者服務端添加或者刪除了語段而沒有及時通知對方,或者線上系統沒有及時升級,都會造成解壓縮不成功。
因而,當業務發生改變,需要多傳輸或者少傳輸一些參數時,都需要及時通知對方,並且根據約定好的協議文件重新生成雙方的Stub程序。自然,這樣操作的靈活性比較差。
如果僅僅是溝通的問題還好解決,更難處理的是版本的問題。比如在服務端提供一個服務,參數的格式是版本l的,已經有50個客戶端在線上調用了。現在有一個客戶端有一個需求,要加一個欄位,怎麼辦呢?這可是一個大工程,所有的客戶端都要適配這個,重新寫程序,哪怕不需要這個欄位的客戶端也要加上這個欄位,並傳輸0,這些程序員就很委屈,本來沒我什麼事兒,為什麼讓我也忙活?
最後,ONCRPC的設計明顯是面向函數的,而非面向對象。而當前面向對象的業務邏輯設計與實現方式已經成為主流。
這一切的根源就在於壓縮。就像平時我們愛用縮略語。如果是籃球愛好者,你直接說NBA(National Basketball Association,美國職業籃球聯賽),他馬上就知道什麼意思,但是如果你和一個大媽說NBA,她可能就聽不懂。
所以,這種RPC框架只能用於客戶端和服務端全由一批人開發的場景,或者至少客戶端和服務端的開發人員要密切溝通,相互合作,有大量的共同語言,才能按照既定的協議順暢地進行工作。
XML與SOAP
但是,一般情況下,我們做一個服務,都是要提供給陌生人用的,你和客戶不會經常溝通,也沒有什麼共同語言。這時就不適合用縮略語,就像你給別人介紹陽A,你要說美國職業籃球聯賽,這樣不管他是做什麼的,都能聽得懂。
放到我們的場景中,就是用文本類的方式進行傳輸。無論哪個客戶端獲得這個文本,都能夠知道它的意義。
第 9 章 網路協議知識串講
9.1 知識串講:用"雙*"的故事串起網路協議的碎片知識(上)
9.2 知識串講:用"雙*"的故事串起網路協議的碎片知識(中)
9.3 知識串講:用"雙*「的故事串起網路協議的碎片知識(下)
9.4 搭建—個網路實驗環境:授人以魚不如授人以漁
總目錄:
好了,本篇文章就分享到這里了,希望這份【趣談網路協議】對大家有所幫助,我在這里也感謝大家對我的支持😉