TCP/IP協議 網絡基礎知識

作者:網絡資源 點擊量:124 發表時間:2018-06-06 12:44

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

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

image.png

一、計算機網絡的背景

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 “單純建立連接”到“安全建立連接”

互聯網時代給人帶來了高度便捷的信息網絡環境,但也帶來了負面的問題:計算機病毒、信息泄露、網絡欺詐等,出于個人信息安全以及數據通信更加安全便捷,安全建立連接自然而然的出現了

image.png

三、協議

1.1 隨處可見的協議

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

“計算機網絡體系結構”將這些網絡協議進行了系統的歸納;TCP/IP就是這些協議的集合

image.png

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

1.2 協議的必要性

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

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

1.3 分組交換協議

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

image.png

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

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

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

四、協議的標準化

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

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

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

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

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

1.1 協議的分層

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

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

協議分層的優點:

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

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

協議分層的劣勢:

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

image.png

1.2 OSI參考模型

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

image.png

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

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

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

image.png

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:其實在應用層、表示層、會話層這三層,協議可以共用:

image.png

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

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

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

主要功能:

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

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

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

包括的協議如下:

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

UDP:用戶數據報協議,適用于傳輸可靠性要求不高,數據量小的數據(比如QQ)

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

具體的內容可參考這篇文章:http://book.51cto.com/art/200807/81191.htm

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令牌環網等

關于七層協議具體的協議以及定義規范,后面隨筆會慢慢介紹,推薦一篇博客,有關七層協議的介紹:http://blog.csdn.net/lisa890608/article/details/8231666

六、傳輸方式的分類

網絡通信科根據數據發送方法進行多種分類,分類方法很多,下面列舉幾種常見的:

1. 面向有連接型和面向無連接型

1.1 面向有連接型

image.png

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

1.2面向無連接型


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

2. 電路交換和分組交換

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

2.1 電路交換

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

2.2 分組交換

image.png

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


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

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

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

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

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

image.png

3. 根據接收端數據分類

3.1 單播

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

3.2 廣播

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

3.3 多播

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

3.4 任播

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

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

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

image.png

七、地址

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

1. 地址的唯一性

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

2. 地址的層次性

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

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

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

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

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

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

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

八、網絡的構成要素

搭建一套網絡環境需要涉及到很多電纜和網絡設備,下面只介紹下連接計算機和計算機的硬件設備:

image.png

搭建網絡的主要設備及其作用:

image.png

1. 通信媒介與數據鏈路

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

各種數據鏈路一覽:

image.png

傳輸速率:數據傳輸過程中,兩個設備之間數據流動的物理速度稱為傳輸速率,單位為bps(Bits Per Second,每秒比特數),即單位時間內傳輸的數據量多少

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

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

           吞吐量不僅衡量帶寬,同時還有主機的CPU處理能力、網絡擁堵程度、報文中數據字段的占有份額(不含報文首部,只計算數據字段本身)等信息

2. 網卡

任何計算機連接網絡時,必須使用網卡(全稱網絡接口卡,也稱為網絡適配器、網卡、LAN卡)

image.png

3. 中繼器

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

image.png

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

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

4. 網橋/2層交換機

image.png

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

網橋能夠連接不同傳輸速率的數據鏈路,并且不限制連接網段的個數

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

地址:MAC地址、硬件地址、物理地址及適配器地址,也就是網絡上針對NIC分配的具體地址

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

image.png

以太網等網絡中經常使用交換集線器(Hub),也屬于網橋的一種;交換集線器中連接電纜的端口都能提供類似網橋的功能

image.png

5. 路由器/3層交換機

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

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

image.png

6. 4~7層交換機

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

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


7. 網關

網關:OSI模型中負責將從傳輸層到應用層的數據進行轉換和轉發的設備;處理傳輸層及以上的數據

         網關不僅轉發數據還對其進行轉換,通常會使用一個表示層或應用層網關,在不能直接通信的協議間進行翻譯,最終實現通信

image.png

代理服務器:

使用萬維網(www)時,為控制網絡流量和處于安全考慮,使用代理服務器(也是網關的一種,稱為應用網關)

使用代理服務器,客戶端與服務器之間不需要直接通信,而是從傳輸層到應用層對數據和訪問進行各種控制處理,防火墻就是一種通過網關通信,針對不同應用提高安全性的產品

代理服務如下圖:

image.png

各種設備及其對應網絡分層預覽圖:

image.png

九、現代網絡

1. 網絡的構成

核心網(數據傳輸核心)+邊緣網絡(傳輸節點)+接入層(匯聚層:連接邊緣網絡的部分)

image.png

2. 互聯網通信

實際的網絡構成圖:

image.png

3. 移動通信

移動通信示意圖:

image.png

4. 信息發布以及數據中心

數據中心由大型服務器、存儲以及計算機網絡構成(某些大型數據中心甚至連接到“主干網”)

數據中心結構圖:

河北11选5