❶ 網路連接的底層協議是什麼
物理層。
OSI是一個開放性的通行系統互連參考模型,他是一個定義的非常好的協議規范。OSI模型有7層結構,每層都可以有幾個子層。下面我簡單的介紹一下這7層及其功能。
OSI的7層從上到下分別是
7 應用層
6 表示層
5 會話層
4 傳輸層
3 網路層
2 數據鏈路層
1 物理層
其中高層,既7、6、5、4層定義了應用程序的功能,下面3層,既3、2、1層主要面向通過網路的端到端的數據流。下面我給大家介紹一下這7層的功能:
(1)應用層:與其他計算機進行通訊的一個應用,它是對應應用程序的通信服務的。例如,一個沒有通信功能的字處理程序就不能執行通信的代碼,從事字處理工作的程序員也不關心OSI的第7層。但是,如果添加了一個傳輸文件的選項,那麼字處理器的程序員就需要實現OSI的第7層。示例:telnet,HTTP,FTP,WWW,NFS,SMTP等。
(2)表示層:這一層的主要功能是定義數據格式及加密。例如,FTP允許你選擇以二進制或ASII格式傳輸。如果選擇二進制,那麼發送方和接收方不改變文件的內容。如果選擇ASII格式,發送方將把文本從發送方的字元集轉換成標準的ASII後發送數據。在接收方將標準的ASII轉換成接收方計算機的字元集。示例:加密,ASII等。
(3)會話層:他定義了如何開始、控制和結束一個會話,包括對多個雙向小時的控制和管理,以便在只完成連續消息的一部分時可以通知應用,從而使表示層看到的數據是連續的,在某些情況下,如果表示層收到了所有的數據,則用數據代表表示層。示例:RPC,SQL等。
(4)傳輸層:這層的功能包括是否選擇差錯恢復協議還是無差錯恢復協議,及在同一主機上對不同應用的數據流的輸入進行復用,還包括對收到的順序不對的數據包的重新排序功能。示例:TCP,UDP,SPX。
(5)網路層:這層對端到端的包傳輸進行定義,他定義了能夠標識所有結點的邏輯地址,還定義了路由實現的方式和學習的方式。為了適應最大傳輸單元長度小於包長度的傳輸介質,網路層還定義了如何將一個包分解成更小的包的分段方法。示例:IP,IPX等。
(6)數據鏈路層:他定義了在單個鏈路上如何傳輸數據。這些協議與被討論的歌種介質有關。示例:ATM,FDDI等。
(7)物理層:OSI的物理層規范是有關傳輸介質的特性標准,這些規范通常也參考了其他組織制定的標准。連接頭、針、針的使用、電流、電流、編碼及光調制等都屬於各種物理層規范中的內容。物理層常用多個規范完成對所有細節的定義。示例:Rj45,802.3等。
OSI分層的優點:
(1)人們可以很容易的討論和學習協議的規范細節。
(2)層間的標准介面方便了工程模塊化。
(3)創建了一個更好的互連環境。
(4)降低了復雜度,使程序更容易修改,產品開發的速度更快。
(5)每層利用緊鄰的下層服務,更容易記住個層的功能。
大多數的計算機網路都採用層次式結構,即將一個計算機網路分為若干層次,處在高層次的系統僅是利用較低層次的系統提供的介面和功能,不需了解低層實現該功能所採用的演算法和協議;較低層次也僅是使用從高層系統傳送來的參數,這就是層次間的無關性。因為有了這種無關性,層次間的每個模塊可以用一個新的模塊取代,只要新的模塊與舊的模塊具有相同的功能和介面,即使它們使用的演算法和協議都不一樣。
網路中的計算機與終端間要想正確的傳送信息和數據,必須在數據傳輸的順序、數據的格式及內容等方面有一個約定或規則,這種約定或規則稱做協議。網路協議主要有三個組成部分:
1、語義:
是對協議元素的含義進行解釋,不同類型的協議元素所規定的語義是不同的。例如需要發出何種控制信息、完成何種動作及得到的響應等。
2、語法:
將若干個協議元素和數據組合在一起用來表達一個完整的內容所應遵循的格式,也就是對信息的數據結構做一種規定。例如用戶數據與控制信息的結構與格式等。
3、時序:
對事件實現順序的詳細說明。例如在雙方進行通信時,發送點發出一個數據報文,如果目標點正確收到,則回答源點接收正確;若接收到錯誤的信息,則要求源點重發一次。
70年代以來,國外一些主要計算機生產廠家先後推出了各自的網路體系結構,但它們都屬於專用的。
為使不同計算機廠家的計算機能夠互相通信,以便在更大的范圍內建立計算機網路,有必要建立一個國際范圍的網路體系結構標准。
國際標准化組織ISO 於1981年正式推薦了一個網路系統結構----七層參考模型,叫做開放系統互連模型(Open System Interconnection,OSI)。由於這個標准模型的建立,使得各種計算機網路向它靠攏, 大大推動了網路通信的發展。
OSI 參考模型將整個網路通信的功能劃分為七個層次,見圖1。它們由低到高分別是物理層(PH)、鏈路層(DL)、網路層(N)、傳輸層(T)、會議層(S)、表示層(P)、應用層(A)。每層完成一定的功能,每層都直接為其上層提供服務,並且所有層次都互相支持。第四層到第七層主要負責互操作性,而一層到三層則用於創造兩個網路設備間的物理連接.
1.物理層
物理層是OSI的第一層,它雖然處於最底層,卻是整個開放系統的基礎。物理層為設備之間的數據通信提供傳輸媒體及互連設備,為數據傳輸提供可靠的環境。
1.1媒體和互連設備
物理層的媒體包括架空明線、平衡電纜、光纖、無線信道等。通信用的互連設備指DTE和DCE間的互連設備。DTE既數據終端設備,又稱物理設備,如計算機、終端等都包括在內。而DCE則是數據通信設備或電路連接設備,如數據機等。數據傳輸通常是經過DTE——DCE,再經過DCE——DTE的路徑。互連設備指將DTE、DCE連接起來的裝置,如各種插頭、插座。LAN中的各種粗、細同軸電纜、T型接、插頭,接收器,發送器,中繼器等都屬物理層的媒體和連接器。
1.2物理層的主要功能
1.2.1為數據端設備提供傳送數據的通路,數據通路可以是一個物理媒體,也可以是多個物理媒體連接而成.一次完整的數據傳輸,包括激活物理連接,傳送數據,終止物理連接.所謂激活,就是不管有多少物理媒體參與,都要在通信的兩個數據終端設備間連接起來,形成一條通路.
1.2.2傳輸數據.物理層要形成適合數據傳輸需要的實體,為數據傳送服務.一是要保證數據能在其上正確通過,二是要提供足夠的帶寬(帶寬是指每秒鍾內能通過的比特(BIT)數),以減少信道上的擁塞.傳輸數據的方式能滿足點到點,一點到多點,串列或並行,半雙工或全雙工,同步或非同步傳輸的需要.
1.3物理層的一些重要標准
物理層的一些標准和協議早在OSI/TC97/C16 分技術委員會成立之前就已制定並在應用了,OSI也制定了一些標准並採用了一些已有的成果.下面將一些重要的標准列出,以便讀者查閱.ISO2110:稱為"數據通信----25芯DTE/DCE介面連接器和插針分配".它與EIA(美國電子工
業協會)的"RS-232-C"基本兼容。ISO2593:稱為"數據通信----34芯DTE/DCE----介面連接器和插針分配"。ISO4092:稱為"數據通信----37芯DTE/DEC----介面連接器和插針分配".與EIARS-449兼容。CCITT V.24:稱為"數據終端設備(DTE)和數據電路終接設備之間的介面電路定義表".其功能與EIARS-232-C及RS-449兼容於100序列線上.
2.數據鏈路層
數據鏈路可以粗略地理解為數據通道。物理層要為終端設備間的數據通信提供傳輸媒體及其連接.媒體是長期的,連接是有生存期的.在連接生存期內,收發兩端可以進行不等的一次或多次數據通信.每次通信都要經過建立通信聯絡和拆除通信聯絡兩過程.這種建立起來的數據收發關系就叫作數據鏈路.而在物理媒體上傳輸的數據難免受到各種不可靠因素的影響而產生差錯,為了彌補物理層上的不足,為上層提供無差錯的數據傳輸,就要能對數據進行檢錯和糾錯.數據鏈路的建立,拆除,對數據的檢錯,糾錯是數據鏈路層的基本任務。
2.1鏈路層的主要功能
鏈路層是為網路層提供數據傳送服務的,這種服務要依靠本層具備的功能來實現。鏈路層應具備如下功能:
2.1.1鏈路連接的建立,拆除,分離。
2.1.2幀定界和幀同步。鏈路層的數據傳輸單元是幀,協議不同,幀的長短和界面也有差別,但無論如何必須對幀進行定界。
2.1.3順序控制,指對幀的收發順序的控制。
2.1.4差錯檢測和恢復。還有鏈路標識,流量控制等等.差錯檢測多用方陣碼校驗和循環碼校驗來檢測信道上數據的誤碼,而幀丟失等用序號檢測.各種錯誤的恢復則常靠反饋重發技術來完成。
2.2數據鏈路層的主要協議
數據鏈路層協議是為發對等實體間保持一致而制定的,也為了順利完成對網路層的服務。主要協議如下:
2.2.1ISO1745--1975:"數據通信系統的基本型控制規程".這是一種面向字元的標准,利用10個控制字元完成鏈路的建立,拆除及數據交換.對幀的收發情況及差錯恢復也是靠這些字元來完成.ISO1155, ISO1177, ISO2626, ISO2629等標準的配合使用可形成多種鏈路控制和數據傳輸方式.
2.2.2ISO3309--1984:稱為"HDLC 幀結構".ISO4335--1984:稱為"HDLC 規程要素 ".ISO7809--1984:稱為"HDLC 規程類型匯編".這3個標准都是為面向比特的數據傳輸控制而制定的.有人習慣上把這3個標准組合稱為高級鏈路控制規程.
2.2.3ISO7776:稱為"DTE數據鏈路層規程".與CCITT X.25LAB"平衡型鏈路訪問規程"相兼容.
2.3鏈路層產品
獨立的鏈路產品中最常見的當屬網卡,網橋也是鏈路產品。MODEM的某些功能有人認為屬於鏈路層,對些還有爭議.數據鏈路層將本質上不可靠的傳輸媒體變成可靠的傳輸通路提供給網路層。在IEEE802.3情況下,數據鏈路層分成了兩個子層,一個是邏輯鏈路控制,另一個是媒體訪問控制。下圖所示為IEEE802.3LAN體系結構。
AUI=連接單元介面 PMA=物理媒體連接
MAU=媒體連接單元 PLS=物理信令
MDI=媒體相關介面
3.網路層
網路層的產生也是網路發展的結果.在聯機系統和線路交換的環境中,網路層的功能沒有太大意義.當數據終端增多時.它們之間有中繼設備相連.此時會出現一台終端要求不只是與唯一的一台而是能和多台終端通信的情況,這就是產生了把任意兩台數據終端設備的數據鏈接起來的問題,也就是路由或者叫尋徑.另外,當一條物理信道建立之後,被一對用戶使用,往往有許多空閑時間被浪費掉.人們自然會希望讓多對用戶共用一條鏈路,為解決這一問題就出現了邏輯信道技術和虛擬電路技術.
3.1網路層主要功能
網路層為建立網路連接和為上層提供服務,應具備以下主要功能:
3.1.1路由選擇和中繼.
3.1.2激活,終止網路連接.
3.1.3在一條數據鏈路上復用多條網路連接,多採取分時復用技術 .
3.1.4差錯檢測與恢復.
3.1.5排序,流量控制.
3.1.6服務選擇.
3.1.7網路管理.
3.2網路層標准簡介
網路層的一些主要標准如下:
3.2.1 ISO.DIS8208:稱為"DTE用的X.25分組級協議"
3.2.2 ISO.DIS8348:稱為"CO 網路服務定義"(面向連接)
3.2.3 ISO.DIS8349:稱為"CL 網路服務定義"(面向無連接)
3.2.4 ISO.DIS8473:稱為"CL 網路協議"
3.2.5 ISO.DIS8348:稱為"網路層定址"
3.2.6 除上述標准外,還有許多標准。這些標准都只是解決網路層的部分功能,所以往往需要在網路層中同時使用幾個標准才能完成整個網路層的功能.由於面對的網路不同,網路層將會採用不同的標准組合.
在具有開放特性的網路中的數據終端設備,都要配置網路層的功能.現在市場上銷售的網路硬設備主要有網關和路由器.
4.傳輸層
傳輸層是兩台計算機經過網路進行數據通信時,第一個端到端的層次,具有緩沖作用。當網路層服務質量不能滿足要求時,它將服務加以提高,以滿足高層的要求;當網路層服務質量較好時,它只用很少的工作。傳輸層還可進行復用,即在一個網路連接上創建多個邏輯連接。 傳輸層也稱為運輸層.傳輸層只存在於端開放系統中,是介於低3層通信子網系統和高3層之間的一層,但是很重要的一層.因為它是源端到目的端對數據傳送進行控制從低到高的最後一層.
有一個既存事實,即世界上各種通信子網在性能上存在著很大差異.例如電話交換網,分組交換網,公用數據交換網,區域網等通信子網都可互連,但它們提供的吞吐量,傳輸速率,數據延遲通信費用各不相同.對於會話層來說,卻要求有一性能恆定的界面.傳輸層就承擔了這一功能.它採用分流/合流,復用/介復用技術來調節上述通信子網的差異,使會話層感受不到.
此外傳輸層還要具備差錯恢復,流量控制等功能,以此對會話層屏蔽通信子網在這些方面的細節與差異.傳輸層面對的數據對象已不是網路地址和主機地址,而是和會話層的界面埠.上述功能的最終目的是為會話提供可靠的,無誤的數據傳輸.傳輸層的服務一般要經歷傳輸連接建立階段,數據傳送階段,傳輸連接釋放階段3個階段才算完成一個完整的服務過程.而在數據傳送階段又分為一般數據傳送和加速數據傳送兩種。傳輸層服務分成5種類型.基本可以滿足對傳送質量,傳送速度,傳送費用的各種不同需要.傳輸層的協議標准有以下幾種:
4.1 ISO8072:稱為"面向連接的傳輸服務定義"
4.2 ISO8072:稱為"面向連接的傳輸協議規范"
5.會話層
會話層提供的服務可使應用建立和維持會話,並能使會話獲得同步。會話層使用校驗點可使通信會話在通信失效時從校驗點繼續恢復通信。這種能力對於傳送大的文件極為重要。會話層,表示層,應用層構成開放系統的高3層,面對應用進程提供分布處理,對話管理,信息表示,恢復最後的差錯等.
會話層同樣要擔負應用進程服務要求,而運輸層不能完成的那部分工作,給運輸層功能差距以彌補.主要的功能是對話管理,數據流同步和重新同步。要完成這些功能,需要由大量的服務單元功能組合,已經制定的功能單元已有幾十種.現將會話層主要功能介紹如下.
5.1為會話實體間建立連接。為給兩個對等會話服務用戶建立一個會話連接,應該做如下幾項工作:
5.1.1將會話地址映射為運輸地址
5.1.2選擇需要的運輸服務質量參數(QOS)
5.1.3對會話參數進行協商
5.1.3識別各個會話連接
5.1.4傳送有限的透明用戶數據
5.2數據傳輸階段
這個階段是在兩個會話用戶之間實現有組織的,同步的數據傳輸.用戶數據單元為SSDU,而協議數據單元為SPDU.會話用戶之間的數據傳送過程是將SSDU轉變成SPDU進行的.
5.3連接釋放
連接釋放是通過"有序釋放","廢棄","有限量透明用戶數據傳送"等功能單元來釋放會話連接的.會話層標准為了使會話連接建立階段能進行功能協商,也為了便於其它國際標准參考和引用,定義了12種功能單元.各個系統可根據自身情況和需要,以核心功能服務單元為基礎,選配其他功能單元組成合理的會話服務子集.會話層的主要標准有"DIS8236:會話服務定義"和"DIS8237:會話協議規范".
6.表示層
表示層的作用之一是為異種機通信提供一種公共語言,以便能進行互操作。這種類型的服務之所以需要,是因為不同的計算機體系結構使用的數據表示法不同。例如,IBM主機使用EBCDIC編碼,而大部分PC機使用的是ASCII碼。在這種情況下,便需要會話層來完成這種轉換。
通過前面的介紹,我們可以看出,會話層以下5層完成了端到端的數據傳送,並且是可靠,無差錯的傳送.但是數據傳送只是手段而不是目的,最終是要實現對數據的使用.由於各種系統對數據的定義並不完全相同,最易明白的例子是鍵盤,其上的某些鍵的含義在許多系統中都有差異.這自然給利用其它系統的數據造成了障礙.表示層和應用層就擔負了消除這種障礙的任務.
對於用戶數據來說,可以從兩個側面來分析,一個是數據含義被稱為語義,另一個是數據的表示形式,稱做語法.像文字,圖形,聲音,文種,壓縮,加密等都屬於語法范疇.表示層設計了3類15種功能單位,其中上下文管理功能單位就是溝通用戶間的數據編碼規則,以便雙方有一致的數據形式,能夠互相認識.ISO表示層為服務,協議,文本通信符制定了DP8822,DP8823,DIS6937/2等一系列標准.
7.應用層
應用層向應用程序提供服務,這些服務按其向應用程序提供的特性分成組,並稱為服務元素。有些可為多種應用程序共同使用,有些則為較少的一類應用程序使用。應用層是開放系統的最高層,是直接為應用進程提供服務的。其作用是在實現多個系統應用進程相互通信的同時,完成一系列業務處理所需的服務.其服務元素分為兩類:公共應用服務元素CASE和特定應用服務元素SASE.CASE提供最基本的服務,它成為應用層中任何用戶和任何服務元素的用戶,主要為應用進程通信,分布系統實現提供基本的控制機制.特定服務SASE則要滿足一些特定服務,如文卷傳送,訪問管理,作業傳送,銀行事務,訂單輸入等.
這些將涉及到虛擬終端,作業傳送與操作,文卷傳送及訪問管理,遠程資料庫訪問,圖形核心系統,開放系統互連管理等等.應用層的標准有DP8649"公共應用服務元素",DP8650"公共應用服務元素用協議",文件傳送,訪問和管理服務及協議.
討論:OSI七層模型是一個理論模型,實際應用則千變萬化,因此更多把它作為分析、評判各種網路技術的依據;對大多數應用來說,只將它的協議族(即協議堆棧)與七層模型作大致的對應,看看實際用到的特定協議是屬於七層中某個子層,還是包括了上下多層的功能。
這樣分層的好處有:
1.使人們容易探討和理解協議的許多細節。
2.在各層間標准化介面,允許不同的產品只提供各層功能的一部分,(如路由器在一到三層),或者只提供協議功能的一部分。(如Win95中的Microsoft TCP/IP)
3. 創建更好集成的環境。
4. 減少復雜性,允許更容易編程改變或快速評估。
5. 用各層的headers和trailers排錯。
6.較低的層為較高的層提供服務。
7. 把復雜的網路劃分成為更容易管理的層。
❷ TCP/IP網路底層
TCP/IP共分為七層,
應用層是最高層,物理鏈路層是最底層。
底層設備就是線路了,物理鏈路是依靠比特流傳輸數據的,也就是說你以後要做線路的排布,對吧?
你需要做的就是做好網線,把網線擦計算機上使他可以上網就OK了。
線還分為交叉線、直通線。
❸ 網路協議-- 底層網路知識詳解(從二層到三層)
網線
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 了。
另外,在路徑中將一個自治系統看成一個整體,不區分自治系統內部的路由器,這樣自治系統的數目是非常有限的。就像大家都能記住出去玩,從中國出發先到韓國然後到日本,只要不計算細到具體哪一站,就算是發送全局信息,也是沒有問題的。
參考:
極客時間-趣談網路協議
極客時間-趣談網路協議
極客時間-趣談網路協議
極客時間-趣談網路協議-網關
❹ 底層是什麼意思
一般是指系統的後台和網路的基端
JAVA和.NET都可以算是底層開發
都是基於網路開發的
系統編程就是屬於底層開發特別是UNIX和LIUNX的開發和編程
❺ 網路環境底層是哪層網路層還是物理層呢
物理層
如:
集線器:集線器的基本功能是信息分發,它把一個埠接收的所有信號向所有埠分發出去,工作在物理層(最底層)。實際就是一種多埠的中繼器(將已經衰減得不完整的信號經過整理,重新產生出完整的信號再繼續傳送)。
❻ 網路中的第一層.第二層指什麼意思
網路七層模型具體所指內容開放系統互連(OSI)模型將網路劃分為七層模型,分別用以在各層上實現不同的功能,
這七層分別為:應用層、表示層、會話層、傳輸層、網路層、數據鏈路層及物理層。而TCP/IP
體系也同樣遵循這七層標准,只不過在某些OSI功能上進行了壓縮,將表示層及會話層合並入
應用層中,所以實際上我們打交道的TCP/IP僅僅有5層而已,網路上的分層結構決定了在各層
上的協議分布及功能實現,從而決定了各層上網路設備的使用。實際上很多成功的系統都是基
於OSI模型的,如:如幀中繼、ATM、ISDN等。
TCP/IP的網路體系結構(部分)
-----------------------------------
| SMTP | DNS | HTTP | FTP | TELNET| 應用層
-----------------------------------
| TCP | UDP | 傳輸層
-----------------------------------
| IP | ICMP | ARP RARP | 網路層
------------------------
| IEEE 802 乙太網 SLIP/PPP PDN etc| 數據鏈路層
-----------------------------------
| 網卡 電纜 雙絞線 etc | 物理層
-----------------------------------
從上面的圖中我們可以看出,第一層物理層和第二層數據鏈路層是TCP/IP的基礎,而
TCP/IP本身並不十分關心低層,因為處在數據鏈路層的網路設備驅動程序將上層的協議和
實際的物理介面隔離開來。網路設備驅動程序位於介質訪問子層(MAC)。
❼ 請問編程中的 上層 和 底層 是什麼意思 比如有人說 "游戲用JAVA或c#做上層,用匯編或c/
上層(或者是表層)、中間層和底層沒有嚴格意義上的定義,在不同的項目中需要結合具體需求來具體分析。
一般來說,表層就是指展現給用戶看的部分;而底層就是系統的最核心的部分。一般我們認為,越接接硬體的編程就越底層。
比如,一個在線通訊軟體(QQ這種),表層就是窗口啊、菜單啊、按鈕啊這些玩意兒;中間層是業務邏輯部分,就是你點擊這些按鈕會產生相應的什麼事件,進行了什麼操作;底層就是Socket網路通信了。當然,我這里這三層是大致劃分的,實際開發中比這個要更具體詳細。
再比如,拿題主說的游戲舉例子,表層就是各種游戲的界面了;底層就是游戲引擎了。底層幹嘛?接收你的滑鼠鍵盤響應信號、操作顯卡在顯示器指定位置生成各種二維的三維的圖像、控制音效卡輸出音頻等等等等。
至於編程語言問題,這就牽扯到低級語言和高級語言的問題了。一般來講低級語言和高級語言區別在於:
高級語言:實現效率高,執行效率低,對硬體的可控性弱,目標代碼大,可維護性好,可移植性好。
低級語言:實現效率低,執行效率高,對硬體的可控性強,目標代碼小,可維護性差,可移植性差。
越低級的語言,形式上越接近機器指令(匯編語言就是與機器指令一一對應的)。而越高級的語言,一條語句對應的指令數越多,其中原因就是高級語言對底層操作進行了抽象和封裝,使編寫程序的過程更符合人類的思維習慣,並且極大了簡化了人力勞動。也就是說你用高級語言寫一句,會被轉換成許多底層操作,大部分的工作交給了負責轉換的機器(即編譯器),從而人力得到了解放。因為機器就是用來為人類提供便利的,所以說高級語言的出現是計算機發展的必然結果。(參考:http://blog.csdn.net/guoxiaoqian8028/article/details/9103151)這就產生了執行效率的問題。
所以說用 C/C++ 這類語言更適合寫游戲引擎。游戲嘛,必定是要求響應速度極高的,總不能按完鍵盤了等100毫秒才響應,生成個三維地圖電腦卡半天。但一般不會游戲的所有部分都用 C/C++ 來完成,為什麼?上面說了,可維護性差、可移植性差。這時候就需要用面向對象這種「高級語言」出馬了。
至於題主提到的「不同語言之間的互通」,建議題主理解一下「介面」(不是面向對象里的「介面類型」)的概念。
泛泛而談,希望對題主有所幫助。
❽ 底層協議是什麼作用是什麼
是計算機網路OSI模型中最低的一層——物理層(或稱物理層,Physical Layer)。
物理層主要功能:為數據端設備提供傳送數據通路、傳輸數據。具體作用為:
1.為數據端設備提供傳送數據的通路,數據通路可以是一個物理媒體,也可以是多個物理媒體連接而成。一次完整的數據傳輸,包括激活物理連接,傳送數據,終止物理連接。所謂激活,就是不管有多少物理媒體參與,都要在通信的兩個數據終端設備間連接起來,形成一條通路。
2.傳輸數據,物理層要形成適合數據傳輸需要的實體,為數據傳送服務。一是要保證數據能在其上正確通過,二是要提供足夠的帶寬(帶寬是指每秒鍾內能通過的比特(BIT)數),以減少信道上的擁塞。傳輸數據的方式能滿足點到點,一點到多點,串列或並行,半雙工或全雙工,同步或非同步傳輸的需要。
3. 完成物理層的一些管理工作。
❾ 網站底層是什麼意思
和客戶交互的代碼..也就是所謂的後台程序
網頁分為2部分一種是前台一種是後台
前台就是美工
只負責頁面的設計沒有任何邏輯基本沒有數據處理.
後台就是進行數據的處理和客戶就行交互
如登陸注冊.
麻煩採納,謝謝!
❿ 什麼是底層開發
底層開發這個含義不明確,有的認為底層開發也是後台開發,這樣java就能做
大家都說在外包公司做的是底層開發就是說最基礎的開發
還有一種就是指硬體的開發