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 回記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章