1. 程式人生 > >Linux Network Technology 回記

Linux Network Technology 回記

學東西不能把之前的忘了,網路部分大體記錄一些內容。

導航

• 通訊協議
TCP/IP IPX/SPX OSI
• ISO/OSI七層模型及各層功能
• TCP/IP四層模型及各層中包含的協議
• IP、UDP、TCP首部格式及相應封裝欄位含義
• IP地址、IP子網掩碼及子網劃分
• 交換技術及交換機
1) 交換機工作原理
2) VLAN及STP
• 路由技術及路由器
1) 路由表工作原理
2) NAT及NAT表

一、  ISO/OSI七層模型及各層功能

ISO:International Standard Organization
ISO/OSI(Open System Internetowrk)

Linux Network Technology 回記

根據網路功能劃分層次
OSI七層
物理層

:二進位制位元流傳輸,定義了電氣規範,機械規範,功能規範,過程規範
資料鏈路層:介質訪問,點到點連線,格式化資料;物理定址:用實體地址標識資料的傳送者和接收者;錯誤檢測:CRC演算法。定義了實體地址:乙太網:乙太網地址,MAC地址,MAC(Media Access Control) 實體地址是直接燒錄在網路介面裝置的ROM晶片中;
網路層:路由選擇,邏輯定址:用邏輯地址標識資料的傳送者和接收者;確定路由:根據邏輯地址標識確定資料傳輸路徑;地址解析:用邏輯地址解析實體地址;定義邏輯地址:IP地址:網際網路地址,IPv4、IPv6邏輯地址用於標識主機在網路中的位置;實體地址用於進行資料通訊;
傳輸層:端到端的連線,範圍到範圍的通訊連線;端到端連線的建立,維護和拆除;可靠性傳輸和非可靠性傳輸;可靠性傳輸:面向連線、流量控制、資料重傳和確認、序列化資料;非可靠傳輸:、面向無連線、無序列化資料、無資料重傳和確認、無流量控制、資料快速傳輸
會話層
:主機到主機之間的會話通訊,機之間的會話建立的主體是應用程式程序;
表示層:資料表示,資料編碼和解碼;資料加密和解密;資料壓縮和解壓縮;
應用層:為應用程式提供網路連線服務;完成身份驗證;

OSI的應用:資料的封裝和解封裝,傳送資料一方實施資料封裝;接收資料一方實施資料解封裝;保證封裝和解封裝能夠順利進行的標準:對等通訊原則:傳送方和接收方雙方的相同層次,必須擁有完全相同的資料處理方式;

二、  TCP/IP四層模型及各層中包含的協議

協議棧,協議標準;TCP/IP協議棧是根據協議來分層;分層標準模糊;網路的實際應用標準;網路實現的事實標準;
TCP/IP四層
物理層/資料鏈路層:X.25, TIA/EIA 568A/B, ...:ppp, pppoE, HDLC, SLIP, Frame_Relay(FR), ...
網際網路層

:IP, IGMP, ICMP, ARP, RARP
傳輸層:TCP, UDP, OSPF, EIGRP, ...
應用層:HTTP, HTTPS, FTP, DNS, DHCP, SMB, QQ, Thrunder, ...

三、  IP、UDP、TCP首部格式及相應封裝欄位含義

Linux Network Technology 回記
IP資料報文
Ver:4bits,IP協議的版本號:0100

IHL:4bits,Header Length,首部長度;0101 - 1111(20Bytes-60Bytes)

TOS and PRIORITY:8bits,有3位優先權欄位已經棄用,還有4位TOS欄位和1位保留欄位(這個保留欄位必須置為0)。4位TOS欄位分別代表最小延時、最大吞吐量、最高可靠性、最低成本。這四者相互衝突,只能選擇一個。
0000:最大頻寬,最小延遲,最高可行性,最高負載;
000, 1000, 0100, 0010, 0001
0:保留位;000:優先順序,000-111;

Packet Length:16bits;表示IP資料報的總長度(包括資料部分)

Indentifier:16bits,標識來源於哪一個上層協議報文;

Flag:3bits,標誌雖然佔了三位,但目前只有兩位有意義
0:是否可分片;0:是否為最後分片;0:保留

Offset:13bits,該欄位表示,被分片的資料報,每一個數據報片在原分組的相對位置。也就是說相對於使用者資料欄位的起點該片從何處開始。片偏移以8個位元組為單位所以每個分片的長度一定是8位元組的整數倍

TTL:8bits,為了防止資料包被路由時,因為缺少目的地址而無限迴圈;資料包在經過任意的路由裝置時,其TTL會減1,一旦TTL減到0,接收到此資料包的裝置會將其丟棄;

Protocol:8bits,網際網路層和傳輸層的通訊介面,通過此處指明的協議號,網際網路層可以在上層找到對應的協議來繼續處理該資料;

Header Checksum:16bits,首部校驗和,將整個首部做hash,得到4位16進位制數字;通常會在接收方主機上,對於接收到的資料包再次進行hash運算,將得到的結果與此處儲存的結果進行異或比較,以確定首部內容是否在傳輸過程中被修改;

源IP地址;

目的IP地址;

Linux Network Technology 回記
UDP資料報文
源埠號,佔16位。標識源主機的埠或程序,同TCP。
目的埠號,佔16位。標識要傳送個目的主機的哪個埠或程序
首部長度,佔16位。標識UDP整個資料報的長度(包括首部和資料)。最小值為8(僅有首部)
檢驗和,佔16位。檢測UDP使用者資料報在傳輸中是否有錯,有錯就丟掉。檢測方式同TCP一樣,檢驗範圍也是包括首部和資料。

Linux Network Technology 回記

TCP資料報文
源埠號,16bits;

目標埠號,16bits;可以手動指定,也可以通過/etc/services檔案判斷自動解析應用層協議獲得;

序列號:TCP協議將大資料報文分段的順序編號,取值範圍是0~2^32-2;預設情況下,第一個資料段的序列號為隨機選擇,以後的資料段的序列號通過計算得到:第一段:隨機產生;後續其他資料段:前一資料段的序列號+前一資料段的資料部分大小+1

確認號(下一段的序列號):接收到的最後一個數據段的下一個資料段的序列號;取值範圍是1~2^32-1

報文首部長度,4bits,通常報文首部長度為24Bytes~60Bytes;

標誌位:12bits,前三位:保留位;4-6位:特殊標誌位;URG:緊急指標標誌位,優先轉發標誌位;URG置一,後面的16bits的僅僅指標才能生效;ACK:確認標誌位;保證資料傳輸可靠性;PSH:推進標誌位;RST:重置標誌位;SYN:同步標誌位;三次握手建立連線時必選的標誌位;FIN:結束標誌位;四次揮手拆除連線時必選的標誌位;

視窗大小,16bits;一次併發傳輸的資料段的數量

資料段校驗和,16bits,保證資料的完整性;

緊急指標,16bits,在URG標誌位置一時,哪個資料段更緊急;

選項:TCP協議分段的標準;TCP協議的資料分段時間戳;...

四、  IP地址、IP子網掩碼及子網劃分

IP
IP的功能:1.定址和路由2.資料分片和重組3.無連線不可靠傳輸(無序傳輸)
IP定址:分層編址的地址:網路部分 + 主機部分
網路部分:描述主機所在的邏輯網s範圍;
主機部分:描述在特定的邏輯網路範圍內的具體位置;
IPv4地址:32bits二進位制構成的地址識別符號號;4個8位組;為了方便人讀取,將其設定為點分十進位制格式;
IPv4地址分類:A.B.C.D.E
A類:最左側的二進位制數字是"0",8個網路位,24個主機位;1.0.0.0-126.255.255.255
B類:最左側的兩位二進位制數字是"10",16個網路位,16個主機位;128.0.0.0 - 191.255.255.255
C類:最左側的三位二進位制數字是"110",24個網路位,8個主機位;192.0.0.0 - 223.255.255.255
D類:最左側的四位二進位制數字是"1110",32個網路位,0個主機位;224.0.0.0 - 239.255.255.255
E類:最左側的四位二進位制數字是"1111",32個網路位,0個主機位;240.0.0.0 - 255.255.255.255

私有IP地址:
A:10.0.0.0 - 10.255.255.255
B:172.16.0.0 - 172.31.255.255
C:192.168.0.0 - 192.168.255.255

公有IP地址:
A:1.0.0.0 - 9.255.255.255 + 11.0.0.0 - 126.255.255.255
B:128.0.0.0 - 172.15.255.255 + 172.32.0.0 - 191.255.255.255
C:192.0.0.0 - 192.167.255.255 + 192.169.0.0 - 223.255.255.255

子網掩碼(Netmask)
組成:32bits二進位制組成,與IPv4的地址位數相同;以點分十進位制方式進行表示;
組成:32bits二進位制組成,與IPv4的地址位數相同;以點分十進位制方式進行表示;
A類地址的標準子網掩碼:255.0.0.0
B類地址的標準子網掩碼:255.255.0.0
C類地址的標準子網掩碼:255.255.255.0
子網劃分
將IPv4的地址與其相對應的子網掩碼做邏輯與運算,得到的結果是:該IPv4地址所屬的網路範圍的網路地址;
網路地址:主機位全都是"0"的IP地址;也被稱為網路名稱;也可以稱為邏輯網段;
定向廣播地址:主機位全都是"1"的IP地址;在特定的邏輯網段中能夠被應用的廣播地址;
以上兩個地址,通常是不能分配給主機使用的;
在一個邏輯網段中,主機位全"0"和主機位全"1"的地址,必須排除在可以地址範圍之外;

主機通過將自身的IP地址和目標主機的IP地址分別與自己的子網掩碼進行邏輯與運算,最終得到的結果就是兩臺主機的邏輯網路地址;然後將此二結果進行比較,如果相同,則表示此二主機在同一邏輯網路範圍之內,因此可以直接使用ARP協議獲取對方的MAC地址,從而實現通訊;如果不相同,則意味著此二主機在不同的邏輯網路範圍之中,於是必須藉助於閘道器才能實現二主機的相同通訊;

閘道器:可以理解為一個邏輯網路的門戶,或者是出入口;現在多使用路由器充當閘道器裝置;一旦資料傳輸經過閘道器等路由裝置,則其資料鏈路層的封裝格式會徹底改變;即:重新封裝資料的源MAC地址及目的MAC地址;對於主機來說,在一次通訊的過程中,需要使用配置在自身網路裝置介面上的子網掩碼判斷目標主機與自身IP地址是否在同一邏輯網段;對於路由器來說,需要利用路由表中路由條目上所攜帶的子網掩碼,來判斷目標主機所在的網路地址,是否存在與本地路由表中,如果有,則按照路由表指示進行轉發;否則直接丟棄不予轉發;

五、  交換技術及交換機

交換技術:
二層交換技術可以識別資料幀中的MAC地址資訊,根據MAC地址進行轉發,並將這些MAC地址與對應的埠,記錄在自己內部的一個MAC地址表中。目前,第2層交換技術已經成熟。從硬體上看,第2層交換機的介面模組都是通過高速背板/匯流排(速率可高達幾十Gbps)交換資料的,2層交換機一般都含有專門用於處理資料包轉發的ASIC(Application specific Integrated Circuit)晶片,因此轉發速度可以做到非常快。

傳統的第2層交換技術:
2層交換機主要用在小型區域網中,機器數量在二、三十臺以下,這樣的網路環境下,廣播包影響不大,2層交換機的快速交換功能、多個接入埠和低廉價格,為小型網路使用者提供了完善的解決方案。總之,交換式區域網技術使專用的頻寬為使用者所獨享,極大地提高了區域網傳輸的效率。可以說,在網路系統整合的技術中,直接面向用戶的第2層交換技術,已得到了令人滿意的答案。

具有路由功能的第3層交換技術
可以處理網路第3層資料轉發的交換技術就是第3層交換技術。
從硬體上看,在第3層交換機中,與路由器有關的第3層路由硬體模組,也插接在高速背板/總線上。這種方式使得路由模組可以與需要路由的其它模組間,高速交換資料,從而突破了傳統的外接路由器介面速率的限制。
3層交換機是為IP設計的,介面型別簡單,擁有很強的3層包處理能力,價格又比相同速率的路由器低得多,非常適用於大規模區域網絡。

具有網路服務功能的第7層交換技術
第7層交換技術通過應用層交換機實現了所有高層網路的功能,使網路管理者能夠以更低的成本,更好地分配網路資源;
從硬體上看,7層交換機將所有功能集中在一個專用的特殊應用積體電路或ASIC上。ASIC比傳統路由器的CPU便宜,而且通常分佈在網路埠上,在單一裝置中包括了50個ASIC,可以支援數以百計的介面。新的ASIC允許智慧交換機/路由器在所有的埠上以極快的速度轉發資料,第7層交換技術可以有效地實現資料流優化和智慧負載均衡。

交換機
交換機(Switch)意為“開關”是一種用於電(光)訊號轉發的網路裝置。它可以為接入交換機的任意兩個網路節點提供獨享的電訊號通路。最常見的交換機是乙太網交換機。其他常見的還有電話語音交換機、光纖交換機等。

交換機工作於OSI參考模型的第二層,即資料鏈路層。交換機內部的CPU會在每個埠成功連線時,通過將MAC地址和埠對應,形成一張MAC表。在今後的通訊中,發往該MAC地址的資料包將僅送往其對應的埠,而不是所有的埠。因此,交換機可用於劃分資料鏈路層廣播,即衝突域;但它不能劃分網路層廣播,即廣播域。

交換機在同一時刻可進行多個埠對之間的資料傳輸。每一埠都可視為獨立的物理網段(注:非IP網段),連線在其上的網路裝置獨自享有全部的頻寬,無須同其他裝置競爭使用。

交換機的傳輸模式有全雙工,半雙工,全雙工/半雙工自適應
交換機的全雙工是指交換機在傳送資料的同時也能夠接收資料,兩者同步進行,這好像我們平時打電話一樣,說話的同時也能夠聽到對方的聲音。交換機都支援全雙工。全雙工的好處在於遲延小,速度快。
全雙工,就不能不提與之密切對應的另一個概念,那就是“半雙工”,所謂半雙工就是指一個時間段內只有一個動作發生,舉個簡單例子,一條窄窄的馬路,同時只能有一輛車通過,當有兩輛車對開,這種情況下就只能一輛先過,等到頭兒後另一輛再開,這個例子就形象的說明了半雙工的原理。早期的對講機、以及早期集線器等裝置都是實行半雙工的產品。隨著技術的不斷進步,半雙工會逐漸退出歷史舞臺。

從廣義上來看,網路交換機分為兩種:廣域網交換機和區域網交換機。
廣域網交換機主要應用於電信領域,提供通訊用的基礎平臺。而區域網交換機則應用於區域網絡,用於連線終端裝置,如PC機及網路印表機等。

從傳輸介質和傳輸速度上可分為乙太網交換機、快速乙太網交換機、千兆乙太網交換機、FDDI交換機、ATM交換機和令牌環交換機等。從規模應用上又可分為企業級交換機、部門級交換機和工作組交換機等。

VLAN
VLAN(Virtual LAN),翻譯成中文是“虛擬區域網”。LAN可以是由少數幾臺家用計算機構成的網路,也可以是數以百計的計算機構成的企業網路。VLAN所指的LAN特指使用路由器分割的網路——也就是廣播域。在IEEE802.1Internetworking委員會結束了對VLAN初期標準的修訂工作的時候。新出臺的標準進一步完善了VLAN的體系結構,統一了Frame-Tagging方式中不同廠商的標籤格式,並制定了VLAN標準在未來一段時間內的發展方向,形成的802.1Q的標準在業界獲得了廣泛的推廣。後來IEEE於1999年頒佈了用於標準化VLAN實現方案的802.1Q協議標準草案。802.1Q的出現打破了虛擬網依賴於單一廠商的僵局,從一個側面推動了VLAN的迅速發展。

Linux Network Technology 回記
通過劃分不同的VLAN,VLAN內的主機間可以直接通訊,而VLAN間不能直接互通,從而將廣播報文限制在一個VLAN內。節省了頻寬,提高了網路處理能力,強區域網的安全性等等。

STP
STP(Spanning Tree Protocol)是生成樹協議的英文縮寫。該協議可應用於在網路中建立樹形拓撲,消除網路中的環路,並且可以通過一定的方法實現路徑冗餘,但不是一定可以實現路徑冗餘。生成樹協議適合所有廠商的網路裝置,在配置上和體現功能強度上有所差別,但是在原理和應用效果是一致的。

STP的基本原理是,通過在交換機之間傳遞一種特殊的協議報文,網橋協議資料單元(Bridge Protocol Data Unit,簡稱BPDU),來確定網路的拓撲結構。BPDU有兩種,配置BPDU(Configuration BPDU)和TCN BPDU。前者是用於計算無環的生成樹的,後者則是用於在二層網路拓撲發生變化時產生用來縮短MAC表項的重新整理時間的。

Spanning Tree Protocol(STP)在IEEE802.1D文件中定義。該協議的原理是按照樹的結構來構造網路拓撲,消除網路中的環路,避免由於環路的存在而造成廣播風暴問題。

六、  路由技術及路由器

路由技術主要是指路由選擇演算法、因特網的路由選擇協議的特點及分類。其中,路由選擇演算法可以分為靜態路由選擇演算法和動態路由選擇演算法。因特網的路由選擇協議的特點是:屬於自適應的選擇協議(即動態的),是分散式路由選擇協議;採用分層次的路由選擇協議,即分自治系統內部和自治系統外部路由選擇協議。因特網的路由選擇協議劃分為兩大類:內部閘道器協議(IGP,具體的協議有RIP和OSPF等)和外部閘道器協議(EGP,目前使用最多的是BGP)

按照路由選擇演算法能否隨網路的拓撲結構或者通訊量自適應地進行調整變化進行分類,路由選擇演算法可以分為靜態路由選擇演算法和動態路由選擇演算法。
靜態路由選擇演算法就是非自適應路由選擇演算法,這是一種不測量、不利用網路狀態資訊,僅僅按照某種固定規律進行決策得簡單得路由選擇演算法。靜態路由選擇演算法得特點是簡單和開銷小,但是不能適應網路狀態的變化。靜態路由選擇演算法主要包括擴散法和固定路由表法。靜態路由是依靠手工輸入的資訊來配置路由表的方法。減小了路由器的日常開銷。在小型網際網路上很容易配置。可以控制路由選擇的更新。但是,靜態路由在網路變化頻繁出現的環境中並不會很好的工作。在大型的和經常變動的網際網路,配置靜態路由是不現實。
動態路由選擇演算法就是自適應路由選擇演算法,是依靠當前網路的狀態資訊進行決策,從而使路由選擇結果在一定程度上適應網路拓撲結構和通訊量的變化。特點是能較好的適應網路狀態的變化,但是實現起來較為複雜,開銷也比較大。動態路由選擇演算法一般採用路由表法,主要包括分散式路由選擇演算法和集中式路由選擇演算法。分散式路由選擇演算法是每一個節點通過定期得與相鄰節點交換路由選擇得狀態資訊來修改各自的路由表,這樣使整個網路的路由選擇經常處於一種動態變化的狀況。集中式路由選擇演算法是網路中設定一個節點,專門收集各個節點定期傳送得狀態資訊,然後由該節點根據網路狀態資訊,動態的計算出每一個節點的路由表,再將新的路由表傳送給各個節點。

按協議分類路由協議可以自動根據實際情況生成的路由表的方法。動態路由的主要優點是,如果存在到目的站點的多條路徑,運行了路由選擇協議(如RIP或IGRP)之後,而正在進行資料傳輸的一條路徑發生了中斷的情況下,路由器可以自動的選擇另外一條路徑傳輸資料。這對於建立一個大型的網路是一個優點。大多數路由選擇協議可分成兩種基本路由選擇協議:

路由器(Router),是連線因特網中各區域網、廣域網的裝置,它會根據通道的情況自動選擇和設定路由,以最佳路徑,按前後順序傳送訊號。 路由器是網際網路絡的樞紐,"交通警察"。目前路由器已經廣泛應用於各行各業,各種不同檔次的產品已成為實現各種骨幹網內部連線、骨幹網間互聯和骨幹網與網際網路互聯互通業務的主力軍。路由和交換機之間的主要區別就是交換機發生在OSI參考模型第二層(資料鏈路層),而路由發生在第三層,即網路層。這一區別決定了路由和交換機在移動資訊的過程中需使用不同的控制資訊,所以說兩者實現各自功能的方式是不同的。

路由器(Router)又稱閘道器裝置(Gateway)是用於連線多個邏輯上分開的網路,所謂邏輯網路是代表一個單獨的網路或者一個子網。當資料從一個子網傳輸到另一個子網時,可通過路由器的路由功能來完成。因此,路由器具有判斷網路地址和選擇IP路徑的功能,它能在多網路互聯環境中,建立靈活的連線,可用完全不同的資料分組和介質訪問方法連線各種子網,路由器只接受源站或其他路由器的資訊,屬網路層的一種互聯裝置。

路由表
路由器是一種典型的網路層裝置。它在兩個區域網之間按幀傳輸資料,在OSI/RM之中被稱之為中介系統,完成網路層責在兩個區域網的網路層間按幀傳輸資料,轉發幀時需要改變幀中的地址。它在OSI/RM中的位置如圖所示。

Linux Network Technology 回記

路由表是在路由器中維護的路由條目的集合,路由表很具路由表做路徑選擇
直連網段:當在路由器上配置了介面的IP地址,並且介面狀態為up的時候,路由表中就出現直連路由項,如下面圖所示:路由器A在介面FO/O和FO/1上分別配置了IP地址,並且在介面已經是up狀態時,在路由器A的路由表中就會出現192.168.1.0和10.0.0.0這兩個網段

非直連網段:那麼對於20.0.0.0這樣不直連在路由器A上的網段,路由器A應該怎麼寫進路由表呢?這就需要使用靜態路由或動態路由來將這些網段以及如何轉發寫到路由表中,

NAT表
NAT(Network Address Translation,網路地址轉換)是1994年提出的。當在專用網內部的一些主機本來已經分配到了本地IP地址(即僅在本專用網內使用的專用地址),但現在又想和因特網上的主機通訊(並不需要加密)時,可使用NAT方法。

這種方法需要在專用網連線到因特網的路由器上安裝NAT軟體。裝有NAT軟體的路由器叫做NAT路由器,它至少有一個有效的外部全球IP地址。這樣,所有使用本地地址的主機在和外界通訊時,都要在NAT路由器上將其本地地址轉換成全球IP地址,才能和因特網連線。

NAT表,作用是對網路地址進行轉換,主要有兩個功能:1. DNAT 網路目的地址轉換; 2. SNAT 網路源地址轉換。

流程例項:
為向因特網傳送分組,主機10.1.1.1將其傳送給配置了NAT 的邊界路由器。該路由器發現分組的源IP地址為內部本地IP地址,且是前往外部網路的,因此對源地址進行轉換,並將這種轉換記錄到NAT 表中。然後,該分組被轉發到外部介面,它包含轉換後的源地址。收到外部主機返回的分組後, NAT 路由器根據NAT 表將分組包含的內部全域性IP地址轉換為內部本地IP 地址。

Linux Network Technology 回記