參考書籍爲《圖解tcp/ip》-第五版。這篇隨筆,主要內容仍是TCP/IP所必備的基礎知識,包括計算機與網絡發展的歷史及標準化過程(簡述)、OSI參考模型、網絡概念的本質、網絡構建的設備等瀏覽器
下面是協議層從底層至頂層的一個模型圖:緩存
1、計算機網絡的背景安全
1.1 計算機的發展服務器
有人說:「20世紀最偉大的發明就是計算機」,自誕生伊始,計算機經歷了一系列發展,從大型通用計算機、超級計算機、小型機、我的電腦、工做站以及現現在筆記本、平板、智能手機等,網絡
計算機已經完全融入了咱們的生活數據結構
1.2 計算機的發展模式架構
起初,計算機只是以單機模式(獨立模式)被普遍應用,隨着發展,計算機被一個個的鏈接起來,造成了一個計算機網路,從而實現了信息共享,遠距離傳遞信息等工做負載均衡
計算機網絡,根據規模可分爲2種:tcp
WAN:Wide Area Network(廣域網)
LAN:Local Area Nerwork(局域網)
2、計算機與網絡發展的七個階段
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 「單純創建鏈接」到「安全創建鏈接」
互聯網時代給人帶來了高度便捷的信息網絡環境,但也帶來了負面的問題:計算機病毒、信息泄露、網絡欺詐等,出於我的信息安全以及數據通訊更加安全便捷,安全創建鏈接天然而然的出現了
3、協議
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協議學習隨筆中有講到數據通訊過程);如圖
計算機通訊會在每個分組中附加上源主機地址和目標主機地址送給通訊線路;這些發送端地址、接收端地址以及分組序號寫入的部分就是「報文首部」
一個較大的數據被分爲不少個分組,爲了標明原始數據的歸屬,有必要將分組序號寫入包中,接收端會根據序號,分組按序從新裝配爲原始數據
協議中,一般會規定報文首部應寫入哪些信息,如何處理;相互通訊的每臺計算機則根據協議構造報文首部,讀取首部等內容,發送和接收方必須對報文首部和主體保持一致的定義和解釋
4、協議的標準化
計算機通訊誕生之初,系統化與標準化未收到重視,不一樣廠商只出產各自的網絡來實現通訊,這樣就形成了對用戶使用計算機網絡形成了很大障礙,缺少靈活性和可擴展性
爲解決該問題,ISO(國際標準化組織)制定了一個國際標準OSI(開放式通訊系統互聯參考模型)
TCP/IP並不是ISO指定,是由IETF(國際互聯網工程任務組)建議、致力推動標準化的一種協議,其中,大學等研究機構和計算機行業是推進標準化的核心力量,現已成爲業界標準協議
協議的標準化也推進了計算機網絡的普及
5、協議分層和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等協議
具體的內容可參考這篇文章: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-23二、EIA/TIA RS-44九、V.3五、RJ-4五、fddi令牌環網等
關於七層協議具體的協議以及定義規範,後面隨筆會慢慢介紹,推薦一篇博客,有關七層協議的介紹:http://blog.csdn.net/lisa890608/article/details/8231666
6、傳輸方式的分類
網絡通訊科根據數據發送方法進行多種分類,分類方法不少,下面列舉幾種常見的:
1. 面向有鏈接型和麪向無鏈接型
1.1 面向有鏈接型
發送數據以前,須要在收發主機之間創建一條通訊線路,在通訊傳輸先後,專門進行創建和斷開鏈接的處理,若是與對端之間沒法通訊,可避免發送無謂的數據
1.2面向無鏈接型
這種類型不要求創建和斷開鏈接,發送端可任什麼時候候發送數據,接收端也不知道本身什麼時候從哪裏接受數據,這種狀況下,接收端須要時常確認是否收到數據,彼此也不須要確認對方是否存在
2. 電路交換和分組交換
軟件通訊方式大體分爲2種:電路交換和分組交換,TCP/IP協議組,採用的就是分組交換
2.1 電路交換
電路交換中,交換機主要負責數據的中轉處理;計算機與交換機相鏈接,交換機之間由衆多通訊線路鏈接,計算機發送數據時,須要先鏈接電路,創建鏈接,便可進行通訊,直到鏈接被斷開
2.2 分組交換
最初,一臺計算機收發信息時會獨佔整個電路,其餘計算機只能等待,且沒法預測什麼時候結束通訊,爲解決這個問題,將發送的數據分爲多個數據包,按必定的順序排列後發送,這就是分組交換
分組交換中,由分組交互機(路由器)鏈接通訊線路;在每一個分組首部寫入發送端與接收端地址(即同一條線路同時爲多個用戶服務),也能夠確認區分每一個分組的數據目的地,以及它與哪臺計算機通訊
分組交換的大體處理過程:發送端將數據分組分給路由器,路由器收到後緩存到本身的緩衝區,而後再轉發給目標計算機;所以,分組交換也稱爲:蓄積交換
路由器收到收據會按照順序進行緩存至相應隊列,而後以先進先出順序將其逐一發送(有時會優先發送目標地址較特殊的數據)
分組交換的缺陷:分組交換中,通訊線路共享,所以,通訊傳輸速度可能有差別,根據網絡擁堵狀況,數據到達目標地址時間長短不一樣;另外,路由器緩存飽和或溢出時,可能發生數據丟失,沒法發送到接收端的狀況
電路交換和分組交換的特色:
3. 根據接收端數據分類
3.1 單播
簡單來講就是一對一通訊,最先的固定電話就是單播通訊的一個典型例子
3.2 廣播
將消息從一臺主機發送給與之相連的其餘全部主機;典型例子就是電視播放(將電視信號一齊發送給非特定的多個鏈接對象)
3.3 多播
與廣播相似,也是將消息發送給多個相鏈接的接收主機;不一樣之處在於多播要限定某一組主機做爲接收端
3.4 任播
在特定的多臺主機中選擇一臺做爲接收端的一種通訊方式(從目標主機羣中選擇一臺最符合的主機做爲目標主機發送消息,通常被選中的主機將返回一個單播信號,隨後發送端只會和這臺主機通訊)
在實際的應用中有DNS根域名解析服務器
PS:幾種不一樣方式的思惟邏輯圖:
7、地址
通訊傳輸中,發送端和接收端能夠被視爲通訊主體,它們由「地址」加以標識,在計算機通訊中,每一層協議的地址都不一樣
1. 地址的惟一性
通訊地址必須明確的表示一個主體對象,以便確認通訊主體,同一個網絡中不容許有2個相同的通訊主體存在,這就是地址的惟一性
2. 地址的層次性
地址總數很少的狀況下,有了惟一地址就能夠定位相互通訊的主體;若是地址總數比較多,那麼想要高效的定位通訊主體,就須要讓地址具備層次性
好比:MAC和IP地址在標識一個通訊主體時都具備惟一性,但只有IP地址具備層次性
MAC地址由製造商製造的網卡,經過識別製造商號,製造商內部產品編號以及產品通用編號來確保MAC地址的惟一性
IP地址由網絡號和主機號2部分組成,即通訊主體IP地址不一樣,若主機號不一樣,網絡號相同,說明其處於同一個網段
網絡通訊中,每一個節點都會根據分組數據的地址信息,參考一個發出接口列表,來判斷報文應該由哪一個網卡發送出去,其中,MAC和IP的區別在於:
MAC:尋址參考的表叫作地址轉發表,其中所記錄的實際上MAC地址自己
IP:尋址參考的表叫作路由控制表,其中所記錄的IP地址是集中了以後的網絡號(網絡號與子網掩碼)
8、網絡的構成要素
搭建一套網絡環境須要涉及到不少電纜和網絡設備,下面只介紹下鏈接計算機和計算機的硬件設備:
搭建網絡的主要設備及其做用:
1. 通訊媒介與數據鏈路
計算機之間經過電纜相互鏈接,電纜能夠分爲不少種,根據數據鏈路不一樣,選用的電纜類型也不一樣,而媒介自己也可被劃分爲電波、微波等不一樣類型
各類數據鏈路一覽:
傳輸速率:數據傳輸過程當中,兩個設備之間數據流動的物理速度稱爲傳輸速率,單位爲bps(Bits Per Second,每秒比特數),即單位時間內傳輸的數據量多少
傳輸速率又稱爲帶寬,帶寬越大網絡傳輸能力就越強
吞吐量:主機之間實際的傳輸速率稱爲吞吐量,單位爲bps
吞吐量不只衡量帶寬,同時還有主機的CPU處理能力、網絡擁堵程度、報文中數據字段的佔有份額(不含報文首部,只計算數據字段自己)等信息
2. 網卡
任何計算機鏈接網絡時,必須使用網卡(全稱網絡接口卡,也稱爲網絡適配器、網卡、LAN卡)
3. 中繼器
OSI模型中第一層——物理層面上延長網絡的設備;由電纜傳過來的波信號或光信號,經由中繼器波形調整和放大再傳給兩一個電纜
通常狀況下,中繼器兩端鏈接的是相同的通訊媒介(有些中繼器也可完成不一樣通訊媒介之間的轉接工做)
有些中繼器可提供多個端口服務,被稱爲中繼集線器(Hub)或者集線器,每一個端口均可稱爲一箇中繼器
4. 網橋/2層交換機
網橋是在OSI模型第二層——數據鏈路層面上鏈接2個網絡的設備;它能夠識別數據鏈路層中的數據幀,並將數據幀臨時存儲於內存,再從新生成一個全新幀轉發給相連的另外一個網段
網橋可以鏈接不一樣傳輸速率的數據鏈路,而且不限制鏈接網段的個數
數據鏈路中有個數據幀叫作FCS,用以校驗數據是否正確送達目的地;網橋經過檢查該域中的值,將損壞的數據丟棄,此外,還能經過地址自學機制和過濾功能控制網絡流量
地址:MAC地址、硬件地址、物理地址及適配器地址,也就是網絡上針對NIC分配的具體地址
自學式網橋:自行判斷是否將數據報文發送給相鄰的網段的網橋(記住曾經過本身轉發的全部數據幀的MAC地址,並存儲到本身的內存表中)
以太網等網絡中常用交換集線器(Hub),也屬於網橋的一種;交換集線器中鏈接電纜的端口都能提供相似網橋的功能
5. 路由器/3層交換機
路由器:OSI模型第三層——網絡層面上鍊接2個網絡、並對分組報文進行轉發的設備,根據IP地址進行處理;TCP/IP中網絡層地址就成爲了IP地址
路由器能夠鏈接不一樣的數據鏈路,它還有分擔網絡負荷的做用(某些路由器具有必定的網絡安全功能)
6. 4~7層交換機
4~7層交換機負責處理OSI模型中從傳輸層至應用層的數據;即以TCP等協議的傳輸層及其上面的應用層爲基礎,分析收發數據,並對其進行特定的處理(例如:負載均衡器)
應用場景:帶寬控制、廣域網加速器、特殊應用訪問、防火牆等
7. 網關
網關:OSI模型中負責將從傳輸層到應用層的數據進行轉換和轉發的設備;處理傳輸層及以上的數據
網關不只轉發數據還對其進行轉換,一般會使用一個表示層或應用層網關,在不能直接通訊的協議間進行翻譯,最終實現通訊
代理服務器:
使用萬維網(www)時,爲控制網絡流量和處於安全考慮,使用代理服務器(也是網關的一種,稱爲應用網關)
使用代理服務器,客戶端與服務器之間不須要直接通訊,而是從傳輸層到應用層對數據和訪問進行各類控制處理,防火牆就是一種經過網關通訊,針對不一樣應用提升安全性的產品
代理服務以下圖:
各類設備及其對應網絡分層預覽圖:
9、現代網絡
1. 網絡的構成
核心網(數據傳輸核心)+邊緣網絡(傳輸節點)+接入層(匯聚層:鏈接邊緣網絡的部分)
2. 互聯網通訊
實際的網絡構成圖:
3. 移動通訊
移動通訊示意圖:
4. 信息發佈以及數據中心
數據中心由大型服務器、存儲以及計算機網絡構成(某些大型數據中心甚至鏈接到「主幹網」)
數據中心結構圖: