1. 程式人生 > >網路基礎知識 網路七層協議 TCP/

網路基礎知識 網路七層協議 TCP/

參考書籍為《圖解tcp/ip》-第五版。這篇隨筆,主要內容還是TCP/IP所必備的基礎知識,包括計算機與網路發展的歷史及標準化過程(簡述)、OSI參考模型、網路概念的本質、網路構建的裝置等

下面是協議層從底層至頂層的一個模型圖:

在這裡插入圖片描述

一、計算機網路的背景

1.1 計算機的發展

有人說:“20世紀最偉大的發明就是計算機”,自誕生伊始,計算機經歷了一系列發展,從大型通用計算機、超級計算機、小型機、個人電腦、工作站以及現如今筆記本、平板、智慧手機等,

計算機已經徹底融入了我們的生活

1.2 計算機的發展模式

起初,計算機只是以單機模式(獨立模式)被廣泛應用,隨著發展,計算機被一個個的連線起來,形成了一個計算機網路,從而實現了資訊共享,遠距離傳遞資訊等工作

計算機網路,根據規模可分為2種:

WAN:Wide Area Network(廣域網)

LAN:Local Area Nerwork(區域網)

二、計算機與網路發展的七個階段

1.1 批處理

Batch Processing:事先將使用者程式和資料裝入卡帶或磁帶,由計算機按一定順序讀取,使使用者要執行的程式和資料能夠一併批量得到處理的方式

1.2 分時系統TSS

Time Sharing System:多個終端和同一個計算機相連,允許多個使用者同時使用一臺計算機系統

特性:多路性、獨佔性、互動性、及時性

1.3 計算機間的通訊

計算機之間以通訊線路連線,加快了資料讀取時間,極大地縮短了傳輸資料時間,多臺計算機分散式處理,架構變得更加靈活,操作更加人性化

1.4 計算機網路

視窗系統的產生,方便了使用者操作,使用者不僅可以同時執行多個程式,還能自由切換作業

視窗系統:在計算機上可以開啟多個圖形視窗進行處理的系統。代表性的有常用於Unix上的 X Window System、微軟的Windows、蘋果的Mac OS X等

1.5 網際網路的出現

異構型計算機連線和電子郵件、全球資訊網等資訊傳播方式促使網際網路開始從大到整個公司小到一個家庭內部開始普及網際網路,實現了世界各地使用者通過接入網際網路而即時溝通與交流

1.6 網際網路技術為中心的時代

代表性事件:作為通訊基礎設施、支撐通訊網路的電話網,被IP網所替代

1.7 “單純建立連線”到“安全建立連線”

網際網路時代給人帶來了高度便捷的資訊網路環境,但也帶來了負面的問題:計算機病毒、資訊洩露、網路欺詐等,出於個人資訊保安以及資料通訊更加安全便捷,安全建立連線自然而然的出現了

在這裡插入圖片描述

三、協議

1.1 隨處可見的協議

網際網路中常用的代表性的協議有IP、TCP、HTTP等,LAN中常用協議有IPX、SPX等

“計算機網路體系結構”將這些網路協議進行了系統的歸納;TCP/IP就是這些協議的集合 在這裡插入圖片描述

其中,還有Novell公司的IPX/SPX、蘋果公司的AppleTalk(僅限蘋果公司計算機使用)、IBM開發的用於構件大規模網路的SNA以及前DEC公司開發的DECnet等

1.2 協議的必要性

簡單來說,協議就是計算機之間通過網路實現通訊時事先達成的一種“約定”;這種“約定”使那些由不同廠商的裝置,不同CPU及不同作業系統組成的計算機之間,只要遵循相同的協議就可以實現通訊

協議可以分很多種,每一種協議都明確界定了它的行為規範:2臺計算機之間必須能夠支援相同的協議,並且遵循相同的協議進行處理,才能實現相互通訊

1.3 分組交換協議

定義:將大資料分割為一個個叫做包(Packet)的較小單位進行傳輸的方法(之前的http協議學習隨筆中有講到資料通訊過程);如圖

在這裡插入圖片描述

計算機通訊會在每一個分組中附加上源主機地址和目標主機地址送給通訊線路;這些傳送端地址、接收端地址以及分組序號寫入的部分就是“報文首部”

一個較大的資料被分為很多個分組,為了標明原始資料的歸屬,有必要將分組序號寫入包中,接收端會根據序號,分組按序重新裝配為原始資料

協議中,通常會規定報文首部應寫入哪些資訊,如何處理;相互通訊的每臺計算機則根據協議構造報文首部,讀取首部等內容,傳送和接收方必須對報文首部和主體保持一致的定義和解釋

四、協議的標準化

計算機通訊誕生之初,系統化與標準化未收到重視,不同廠商只出產各自的網路來實現通訊,這樣就造成了對使用者使用計算機網路造成了很大障礙,缺乏靈活性和可擴充套件性

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

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

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

五、協議分層和OSI參考模型

1.1 協議的分層

概念:ISO在指定標準的OSI之前,提出了作為通訊協議設計指標的OSI參考模型,將協議分為七層,使得原來複雜的網路協議更加簡單化

定義:在七層模型中,每個分層都接受由它下一層所提供的特定服務,並且負責為自己的上一層提供特定的服務,上下層之間進行互動所遵循的約定叫做“介面”,同一層之間的互動所遵循的約定叫做“協議”

協議分層的優點:

每個分層可以獨立使用,其實系統中某些分層發生變化,也不會影響整個系統,因此可以構造一個擴充套件性和靈活性都比較強的系統;

此外,通過分層可以細分通訊功能,更易於單獨實現每個分層的協議,界定各個分層的具體責任和義務

協議分層的劣勢:

過分模組化,處理變得更加沉重,以及每個模組都不得不事先相似的處理邏輯等

在這裡插入圖片描述

1.2 OSI參考模型

實際上,分組通訊協議很複雜,OSI參考模型將其分為了易於理解的七個分層,如下圖:

在這裡插入圖片描述

不過,OSI參考模型只是一個模型,對各層只做了粗略的定義,並沒有對介面和協議做詳細的定義,想深入瞭解還需要學習具體的協議規範

1.3 OSI參考模型中每個分層的作用

下圖表述了簡單的每個分層的作用:

在這裡插入圖片描述

1.3.1 應用層:為應用程式提供服務並規定應用程式中通訊相關的細節;包括的協議如下:

①:超文字傳輸協議HTTP:這是一種最基本的客戶機/伺服器的訪問協議;瀏覽器向伺服器傳送請求,而伺服器迴應相應的網頁

②:檔案傳送協議FTP:提供互動式的訪問,基於客戶伺服器模式,面向連線 使用TCP可靠的運輸服務

主要功能:減少/消除不同作業系統下檔案的不相容性

③:遠端登入協議TELNET:客戶伺服器模式,能適應許多計算機和作業系統的差異,網路虛擬終端NVT的意義

④:簡單郵件傳送協議SMTP:Client/Server模式,面向連線

基本功能:寫信、傳送、報告傳送情況、顯示信件、接收方處理信件

⑤:DNS域名解析協議:DNS是一種用以將域名轉換為IP地址的Internet服務

⑥:簡單檔案傳送協議TFTP:客戶伺服器模式,使用UDP資料報,只支援檔案傳輸,不支援互動,TFTP程式碼佔記憶體小

⑦:簡單網路管理協議(SNMP): SNMP模型的4個元件:被管理結點、管理站、管理資訊、管理協議

SNMP代理:執行SNMP管理程序的被管理結點

物件:描述裝置的變數

管理資訊庫(MIB):儲存所有物件的資料結構

⑧DHCP動態主機配置協議: 發現協議中的引導檔名、空終止符、屬名或者空,DHCP供應協議中的受限目錄路徑名 Options –可選引數欄位,參考定義選擇列表中的選擇檔案

1.3.2 表示層:將應用處理的資訊轉換為適合網路傳輸的格式,或將來自下一層的資料轉換為上層能夠處理的格式;主要負責資料格式的轉換,確保一個系統的應用層資訊可被另一個系統應用層讀取

具體來說,就是將裝置固有的資料格式轉換為網路標準傳輸格式,不同裝置對同一位元流解釋的結果可能會不同;因此,主要負責使它們保持一致

1.3.3 會話層:負責建立和斷開通訊連線(資料流動的邏輯通路),記憶資料的分隔等資料傳輸相關的管理

PS:其實在應用層、表示層、會話層這三層,協議可以共用:

在這裡插入圖片描述

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

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

在這一層,資料的單位稱為資料段(segment)

主要功能:

①:為端到端連線提供傳輸服務

②:這種傳輸服務分為可靠和不可靠的,其中Tcp是典型的可靠傳輸,而Udp則是不可靠傳輸

③:為端到端連線提供流量控制,差錯控制,服務質量(Quality of Service,QoS)等管理服務

包括的協議如下:

TCP:傳輸控制協議,傳輸效率低,可靠性強

UDP:使用者資料報協議,適用於傳輸可靠性要求不高,資料量小的資料(比如QQ)

DCCP、SCTP、RTP、RSVP、PPTP等協議

1.3.5 網路層:將資料傳輸到目標地址;目標地址可以使多個網路通過路由器連線而成的某一個地址,主要負責尋找地址和路由選擇,網路層還可以實現擁塞控制、網際互連等功能

在這一層,資料的單位稱為資料包(packet)

網路層協議的代表包括:IP、IPX、RIP、OSPF等

1.3.6 資料鏈路層:負責物理層面上的互聯的、節點間的通訊傳輸(例如一個乙太網項鍊的2個節點之間的通訊);該層的作用包括:實體地址定址、資料的成幀、流量控制、資料的檢錯、重發等。

在這一層,資料的單位稱為幀(frame)

資料鏈路層協議的代表包括:ARP、RARP、SDLC、HDLC、PPP、STP、幀中繼等

1.3.7 物理層:負責0、1 位元流(0/1序列)與電壓的高低、逛的閃滅之間的轉換

規定了啟用、維持、關閉通訊端點之間的機械特性、電氣特性、功能特性以及過程特性;該層為上層協議提供了一個傳輸資料的物理媒體。只是說明標準

在這一層,資料的單位稱為位元(bit)

屬於物理層定義的典型規範代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45、fddi令牌環網等

六、傳輸方式的分類

網路通訊科根據資料傳送方法進行多種分類,分類方法很多,下面列舉幾種常見的:

  1. 面向有連線型和麵向無連線型

1.1 面向有連線型

在這裡插入圖片描述

傳送資料之前,需要在收發主機之間建立一條通訊線路,在通訊傳輸前後,專門進行建立和斷開連線的處理,如果與對端之間無法通訊,可避免傳送無謂的資料

1.2面向無連線型

在這裡插入圖片描述

這種型別不要求建立和斷開連線,傳送端可任何時候傳送資料,接收端也不知道自己何時從哪裡接受資料,這種情況下,接收端需要時常確認是否收到資料,彼此也不需要確認對方是否存在

  1. 電路交換和分組交換

軟體通訊方式大致分為2種:電路交換和分組交換,TCP/IP協議組,採用的就是分組交換

2.1 電路交換

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

2.2 分組交換

最初,一臺計算機收發資訊時會獨佔整個電路,其他計算機只能等待,且無法預測何時結束通訊,為解決這個問題,將傳送的資料分為多個數據包,按一定的順序排列後傳送,這就是分組交換

在這裡插入圖片描述

分組交換中,由分組互動機(路由器)連線通訊線路;在每個分組首部寫入傳送端與接收端地址(即同一條線路同時為多個使用者服務),也可以確認區分每個分組的資料目的地,以及它與哪臺計算機通訊

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

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

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

電路交換和分組交換的特點:

在這裡插入圖片描述

  1. 根據接收端資料分類

3.1 單播

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

3.2 廣播

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

3.3 多播

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

3.4 任播

在特定的多臺主機中選擇一臺作為接收端的一種通訊方式(從目標主機群中選擇一臺最符合的主機作為目標主機發送訊息,一般被選中的主機將返回一個單播訊號,隨後傳送端只會和這臺主機通訊)

在實際的應用中有DNS根域名解析伺服器

PS:幾種不同方式的思維邏輯圖:

在這裡插入圖片描述

七、地址

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

  1. 地址的唯一性

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

  1. 地址的層次性

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

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

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

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

網路通訊中,每個節點都會根據分組資料的地址資訊,參考一個發出介面列表,來判斷報文應該由哪個網絡卡傳送出去,其中,MAC和IP的區別在於:

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

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

八、網路的構成要素

搭建一套網路環境需要涉及到很多電纜和網路裝置,下面只介紹下連線計算機和計算機的硬體裝置:

在這裡插入圖片描述

搭建網路的主要裝置及其作用:

在這裡插入圖片描述

  1. 通訊媒介與資料鏈路

計算機之間通過電纜相互連線,電纜可以分為很多種,根據資料鏈路不同,選用的電纜型別也不同,而媒介本身也可被劃分為電波、微波等不同型別

各種資料鏈路一覽:

在這裡插入圖片描述

傳輸速率:資料傳輸過程中,兩個裝置之間資料流動的物理速度稱為傳輸速率,單位為bps(Bits Per Second,每秒位元數),即單位時間內傳輸的資料量多少

傳輸速率又稱為頻寬,頻寬越大網路傳輸能力就越強

吞吐量:主機之間實際的傳輸速率稱為吞吐量,單位為bps

吞吐量不僅衡量頻寬,同時還有主機的CPU處理能力、網路擁堵程度、報文中資料欄位的佔有份額(不含報文首部,只在這裡插入程式碼片計算資料欄位本身)等資訊

  1. 網絡卡

任何計算機連線網路時,必須使用網絡卡(全稱網路介面卡,也稱為網路介面卡、網絡卡、LAN卡)

在這裡插入圖片描述

  1. 中繼器

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

一般情況下,中繼器兩端連線的是相同的通訊媒介(有些中繼器也可完成不同通訊媒介之間的轉接工作)

有些中繼器可提供多個埠服務,被稱為中繼集線器(Hub)或者集線器,每個埠都可稱為一箇中繼器

  1. 網橋/2層交換機

在這裡插入圖片描述

網橋是在OSI模型第二層——資料鏈路層面上連線2個網路的裝置;它可以識別資料鏈路層中的資料幀,並將資料幀臨時儲存於記憶體,再重新生成一個全新幀轉發給相連的另一個網段

網橋能夠連線不同傳輸速率的資料鏈路,並且不限制連線網段的個數

資料鏈路中有個資料幀叫做FCS,用以校驗資料是否正確送達目的地;網橋通過檢查該域中的值,將損壞的資料丟棄,此外,還能通過地址自學機制和過濾功能控制網路流量

地址:MAC地址、硬體地址、實體地址及介面卡地址,也就是網路上針對NIC分配的具體地址

自學式網橋:自行判斷是否將資料報文傳送給相鄰的網段的網橋(記住曾通過自己轉發的所有資料幀的MAC地址,並存儲到自己的記憶體表中)

在這裡插入圖片描述

乙太網等網路中經常使用交換集線器(Hub),也屬於網橋的一種;交換集線器中連線電纜的埠都能提供類似網橋的功能

在這裡插入圖片描述

  1. 路由器/3層交換機

路由器:OSI模型第三層——網路層面上連線2個網路、並對分組報文進行轉發的裝置,根據IP地址進行處理;TCP/IP中網路層地址就成為了IP地址

路由器可以連線不同的資料鏈路,它還有分擔網路負荷的作用(某些路由器具備一定的網路安全功能)

在這裡插入圖片描述

  1. 4~7層交換機

4~7層交換機負責處理OSI模型中從傳輸層至應用層的資料;即以TCP等協議的傳輸層及其上面的應用層為基礎,分析收發資料,並對其進行特定的處理(例如:負載均衡器)

應用場景:頻寬控制、廣域網加速器、特殊應用訪問、防火牆等

在這裡插入圖片描述

  1. 閘道器

閘道器:OSI模型中負責將從傳輸層到應用層的資料進行轉換和轉發的裝置;處理傳輸層及以上的資料

閘道器不僅轉發資料還對其進行轉換,通常會使用一個表示層或應用層閘道器,在不能直接通訊的協議間進行翻譯,最終實現通訊

在這裡插入圖片描述

代理伺服器:

使用全球資訊網(www)時,為控制網路流量和處於安全考慮,使用代理伺服器(也是閘道器的一種,稱為應用閘道器)

使用代理伺服器,客戶端與伺服器之間不需要直接通訊,而是從傳輸層到應用層對資料和訪問進行各種控制處理,防火牆就是一種通過閘道器通訊,針對不同應用提高安全性的產品

代理服務如下圖:

在這裡插入圖片描述

各種裝置及其對應網路分層預覽圖:

在這裡插入圖片描述

九、現代網路

  1. 網路的構成

核心網(資料傳輸核心)+邊緣網路(傳輸節點)+接入層(匯聚層:連線邊緣網路的部分)

在這裡插入圖片描述

  1. 網際網路通訊

實際的網路構成圖:

在這裡插入圖片描述

  1. 行動通訊

行動通訊示意圖:

在這裡插入圖片描述

  1. 資訊釋出以及資料中心

資料中心由大型伺服器、儲存以及計算機網路構成(某些大型資料中心甚至連線到“主幹網”)

資料中心結構圖:

在這裡插入圖片描述