Network Layer(!)
網(wǎng)絡(luò)層功能
網(wǎng)絡(luò)層里最核心的兩個功能是:路由(routing)與轉(zhuǎn)發(fā)(forwarding)
- 路由選擇:當分組開始從源主機發(fā)往目的主機,網(wǎng)絡(luò)層必須決定分組該采用的路由或路徑。(determine route taken by packets from source to dest. )
- 分組轉(zhuǎn)發(fā):當一個分組到達路由器輸入鏈路時,需要將該分組轉(zhuǎn)發(fā)到相應(yīng)合適的輸出鏈路上。(move packets from router’s input to appropriate router output)
網(wǎng)絡(luò)層提供的兩種服務(wù)
網(wǎng)絡(luò)層可以為用戶提供兩種服務(wù),一個是面向連接的服務(wù),另一種則是無連接的服務(wù)。我們在現(xiàn)有的計算機網(wǎng)絡(luò)體系結(jié)構(gòu)中,網(wǎng)絡(luò)層只能單獨提供其中一個服務(wù),兩種服務(wù)同時提供是不存在的。網(wǎng)絡(luò)層提供的是主機到主機的服務(wù),運輸層提供的是進程到進程的服務(wù)
在網(wǎng)絡(luò)層提供面向連接的計算機網(wǎng)絡(luò)被稱為虛電路網(wǎng)絡(luò)(virtual-circuit network)
,而提供無連接的計算機網(wǎng)絡(luò)則被稱為數(shù)據(jù)報網(wǎng)絡(luò)(datagram network)
。
我們首先大致了解一下它們的特點:
虛電路網(wǎng)絡(luò)(virtual-circuit network)
雖然因特網(wǎng)是一個數(shù)據(jù)報網(wǎng)絡(luò),但很多其他網(wǎng)絡(luò)體系結(jié)構(gòu)(ATM、幀中繼)卻是虛電路網(wǎng)絡(luò),因此在網(wǎng)絡(luò)層使用連接,這些網(wǎng)絡(luò)層連接被稱為虛電路。
虛電路的組成如下:1)源和目的主機之間的路徑(即一系列鏈路和路由器)2)VC號,沿著該路徑的每段鏈路一個號碼 3)沿著該路徑的每臺路由器中的轉(zhuǎn)發(fā)表項。
如圖所示,主機A請求網(wǎng)絡(luò)與主機B建立一條虛電路,假設(shè)虛電路選擇路徑A-R1-R2-B,并為這三條鏈路分配VC號12、22、32,這這種情況下,當這條虛電路中的分組離開主機A,VC值12,離開R1,VC值22,離開R2,值32
數(shù)據(jù)報網(wǎng)絡(luò)(datagram network)
在數(shù)據(jù)報網(wǎng)絡(luò)中,每當一個端系統(tǒng)要發(fā)送分組,就為該分組加上目的端系統(tǒng)的地址,然后將分組推進網(wǎng)絡(luò)中,無需建立任何虛電路,路由器不維護任何虛電路的狀態(tài)信息。
現(xiàn)在給兩者做個對比
路由器結(jié)構(gòu)(Router architecture)
前面簡單的了解了一下轉(zhuǎn)發(fā),現(xiàn)在詳細了解一下。話不多說,先上圖!
此圖應(yīng)該清楚的說明了路由器的內(nèi)部結(jié)構(gòu)和工作原理,它有四種組件構(gòu)成:
- Input ports [輸入端口]
- Output ports [輸出端口]
- Switching fabric [交換結(jié)構(gòu)]
- Routing processor [路由選擇處理器]
輸入端口要完成查找功能,在這里通過查詢轉(zhuǎn)發(fā)表決定路由器的輸出端口,然后通過交換結(jié)構(gòu)轉(zhuǎn)發(fā)到輸出端口。
在討論上述轉(zhuǎn)發(fā)機制的過程中,我們并沒有提及任何特定的計算機網(wǎng)絡(luò),在此,我們應(yīng)該了解一下,我們最常見的網(wǎng)絡(luò)-因特網(wǎng)。
先放上一張圖審視下網(wǎng)絡(luò)層內(nèi)部
由此可知因特網(wǎng)的網(wǎng)絡(luò)層有三個主要組件:
- IP協(xié)議
- 路由選擇部分(計算和維護轉(zhuǎn)發(fā)表)
- ICMP(報告數(shù)據(jù)報中的差錯和對默寫網(wǎng)絡(luò)層信息請求進行相應(yīng)的設(shè)施)
我們一個一個看
IP部分
IPv4
IPv4,即普遍使用的IP協(xié)議,IP協(xié)議定義數(shù)據(jù)傳送的基本單元—IP分組及其確切的數(shù)據(jù)格式。
IPv4數(shù)據(jù)報格式:
Tips:
一個IP分組由首部和數(shù)據(jù)兩部分組成。首部的前一部分是固定長度的,共20字節(jié),是所有IP分組必須具有的。在首部固定部分的后面是一些可選字段,其長度是可變的,用來提供錯誤檢測及安全等機制。
IP數(shù)據(jù)包分片(fragmentation)
一個鏈路層數(shù)據(jù)報能承載的最大數(shù)據(jù)量稱為最大傳送單元(MTU)。因為IP數(shù)據(jù)報被封裝在鏈路層數(shù)據(jù)報中,故鏈路層的MTU嚴格地限制著IP數(shù)據(jù)報的長度,而且在IP數(shù)據(jù)報的源于目的地路徑上的各段鏈路可能使用不同的鏈路層協(xié)議,有不同的MTU。當IP數(shù)據(jù)報的總長度大于鏈路MTU,就需要將IP數(shù)據(jù)報中的數(shù)據(jù)分裝在兩個或更多個較小的IP數(shù)據(jù)報中,這些較小的數(shù)據(jù)報叫做片。
Expand:
MTU:maximum transmission unit
下面是分片的舉例:
片 | 字節(jié) | ID | 偏移 | 標志 |
---|---|---|---|---|
第一片 | 1480字節(jié) | 777 | 0(表示插入的數(shù)據(jù)開始于字節(jié)0) | Flag=1(表示后面還有) |
第二片 | 1480字節(jié) | 777 | 185(表示插入的數(shù)據(jù)開始于字節(jié)1480.185*8 = 1480 | Flag=1(表示后面還有) |
第三片 | 1020字節(jié) | 777 | 370(表示插入的數(shù)據(jù)開始于字節(jié)370*8=2960) | Flag=0(表示這是最后一片) |
注意:為堅持網(wǎng)絡(luò)內(nèi)核保持簡單的原則,IPv4的設(shè)計者決定數(shù)據(jù)報的重新組裝工作放到端系統(tǒng)中,而不是在網(wǎng)絡(luò)路由器中。
IPv4地址
連接在Internet中的每一臺主機(或路由器)都分配一個32比特
的全球唯一的標識符,即IP地址。傳統(tǒng)的IP地址是分類的地址,分為A、B、C、D、E
五類。都是由網(wǎng)絡(luò)號和主機號組成。
網(wǎng)絡(luò)號A:1-126 B:128-191 C:192-223 D:224-239 E:240-255
DHCP(the Dynamic Host Configuration Protocol)
我們先來看一下什么是DHCP,DHCP(Dynamic Host Configuration Protocol
),動態(tài)主機配置協(xié)議)它可以為客戶機自動分配IP地址、子網(wǎng)掩碼以及缺省網(wǎng)關(guān)、DNS服務(wù)器的IP地址等TCP/IP參數(shù),簡單來說,就是在DHCP服務(wù)器上有一個數(shù)據(jù)庫,存放著IP地址、網(wǎng)關(guān)、DNS等參數(shù)。當客戶端請求使用時,服務(wù)器則負責將相應(yīng)的參數(shù)分配給客戶端。以避免客戶端手動指定IP地址。
來看下DHCP的工作過程,我們可以叫它dora
(不是動畫片里那個=-=):
1.DHCP DISCOVER: 尋找服務(wù)器
當DHCP客戶端第一次登錄網(wǎng)絡(luò)的時候或者是開機時,此計算機發(fā)現(xiàn)本機上沒有任何IP地址設(shè)定,就會向網(wǎng)絡(luò)廣播去尋找DHCP服務(wù)器。該數(shù)據(jù)包的來源地址會為0.0.0.0,而目的地址則為255.255.255.255。
2. DHCP OFFER分配IP地址
當無線設(shè)備監(jiān)聽到客戶端發(fā)出的尋找服務(wù)器的數(shù)據(jù)包后,它會從那些還沒有分配出的IP地址里,選擇最前面的的空閑IP,給客戶端一個分配IP地址,但這里僅僅是分配,客戶端還沒有真正應(yīng)用上。
3. DHCP REQUEST 請求使用
客戶端收到無線設(shè)備發(fā)送回來的分配IP地址數(shù)據(jù)包,客戶端會向網(wǎng)絡(luò)發(fā)送一個ARP數(shù)據(jù)包,確認網(wǎng)絡(luò)中沒有其他機器使用該IP地址,如果已經(jīng)有,則重復發(fā)送步驟1中的動作;如果沒有,則接受該IP地址,并發(fā)送一個DHCP request數(shù)據(jù)包給無線路由器,也就是DHCP服務(wù)器,請求使用此地址。
4. DHCP ACK IP地址分配確認
當無線設(shè)備接收到客戶端的DHCP request數(shù)據(jù)包之后,會向客戶端發(fā)出一個DHCP ACK回應(yīng),以確認IP地址的正式生效,也就結(jié)束了一個完整的DHCP工作過程。
Tips:
DHCP是基于UDP的應(yīng)用層協(xié)議,是即插即用的(plug-and-play)
NAT(network address translation)
網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)是通過將專用網(wǎng)絡(luò)地址轉(zhuǎn)換為公用地址,從而對外隱藏了內(nèi)部管理的IP地址。它使得整個專用網(wǎng)只需要一個全球IP地址就可以與因特網(wǎng)連通,由于專用網(wǎng)本地IP地址是可重用的,所以NAT大大節(jié)省了IP地址的消耗
。同時,它隱藏了內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu),從而降低了內(nèi)部網(wǎng)絡(luò)收到攻擊的風險
。
ICMP(internet control message protocol)
為了提高IP數(shù)據(jù)報交付成功的機會,在網(wǎng)絡(luò)層使用了網(wǎng)絡(luò)控制報文協(xié)議ICMP
來允許主機或路由器報告差錯和異常情況
。ICMP報文作為IP層數(shù)據(jù)報的數(shù)據(jù),加上數(shù)據(jù)報的首部,組成IP數(shù)據(jù)報發(fā)送出去。ICMP協(xié)議是IP層協(xié)議
。
IPv6
二話不說先扔圖。要解決IP地址耗盡的問題的措施有以下三種:1.采用無類別CIDR,使IP地址的分配更加合理;2.采用網(wǎng)絡(luò)地址轉(zhuǎn)換NAT方法以節(jié)省全球IP地址;3.采用具有更大地址空間的新版本IP協(xié)議IPv6。前兩者只是延長了IPv4地址分配結(jié)束的時間,只有第三種方法從根本上解決了IP地址的耗盡問題。
所以說如果考試問你這個你就會了是吧
IPv6的主要特點如下:
1)更大的地址空間。IPv6將地址從IPv4的32位增大到了128位
2)擴展的地址層次結(jié)構(gòu)
3)靈活的首部格式
4)改進的選項
5)允許協(xié)議繼續(xù)擴充
6)支持即插即用(即自動配置)
7)支持資源的預(yù)分配
IPv6的最大特征還是在于它的保密性
Routing Algorithms
看到這里,大家可能又會倒吸一口涼氣,畢竟還是有很多人和我一樣看見算法就頭疼,筆者也是很擔心整理不好。前輩們你們是沒事可做嗎?為什么寫這么多概念???
我們舉步維艱,艱難地啃著概念...
那么問題來了,什么是路由算法?
你可能給出這樣的回答:是在給定一組路由器及連接路由器鏈路的情況下,找出一條由源節(jié)點到目標節(jié)點的最佳路徑。
我肯定會說你好棒棒
其實呢,路由算法分為兩大類:非自適應(yīng)路由算法和自適應(yīng)路由算法。非自適應(yīng)路由算法典型代表就是靜態(tài)路由,而動態(tài)路由中所使用到的算法都屬于自適應(yīng)路由算法。而路由表是存儲在路由器或者聯(lián)網(wǎng)計算機中的電子表格或類似的數(shù)據(jù)庫.路由表存儲著指向特定那個網(wǎng)絡(luò)地址的路徑。
幾種主要的路由算法:
靜態(tài)路由算法:
1.最短路徑路由算法(Shortest Path Routing).
2.擴散算法
動態(tài)路由算法:
1.距離矢量路由算法(Distance-Vector)
2.鏈路狀態(tài)路由算法(Link-State)
Tips:
距離矢量路由算法(Distance Vector Routing,DV)是ARPANET網(wǎng)絡(luò)上最早使用的路由算法,也稱Bellman-Ford路由算法和Ford-Fulkerson算法,主要在RIP(Route Information Protocol)
協(xié)議中使用。我們可以記住一個常用的公式:dx(y)=min{c(x,v)+dvy}
鏈路狀態(tài)路由協(xié)議是目前使用最廣的一類域內(nèi)路由協(xié)議。它采用一種“拼圖”的設(shè)計策略,即每個路由器將它到其周圍鄰居的鏈路狀態(tài)向全網(wǎng)的其他路由器進行廣播。其中我們會了解到迪杰斯特拉(Dijkstra)算法,它便是其中一種用法,其核心基于最短路徑。
我們這里不深入探討算法的內(nèi)涵,考試沒那么變態(tài),我們理解一些基本點就足夠
這兩種算法各有特點,分述如下:
- 報文復雜性(message complexity)。LS算法要求每個節(jié)點知道網(wǎng)絡(luò)中每條鏈路的費用,DV算法要求在每次迭代時,在兩個直接相連的鄰居之間交換報文。
- 收斂速度(speed of convergence)。優(yōu)劣顯而易見
- 健壯性(robustness)。如果一臺路由器發(fā)生故障,行為錯亂或受到破壞時情況會怎樣呢?對于LS算法,路由器能夠像其連接的的一條鏈路廣播不正確費用。一個節(jié)點也可損壞或丟棄他收到的任何LS廣播分組作為LS廣播的一部分。但是一個LS節(jié)點僅計算自己的轉(zhuǎn)發(fā)表:其他節(jié)點為自己做類似的計算。這就意味這在LS算法下,路由計算是有些孤立的,提供了一定程度的健壯性。在DV算法下,一個節(jié)點可向任意或所有的目的節(jié)點通告其不正確的最低費用路徑。DV算法中一個不正確的節(jié)點計算值會擴散到整個網(wǎng)絡(luò)。
Hierarchical routing
為了解決路由表的規(guī)模問題(scale)和實現(xiàn)辦公自動化(Administrative autonomy),我們來說明下分層路由的出現(xiàn)。
自治系統(tǒng)內(nèi)部的路由選擇稱域內(nèi)路由選擇,自治系統(tǒng)之間的路由選擇稱域間路由選擇。也就是我們常說的 intra-AS
和 inter-AS
因特網(wǎng)的路由協(xié)議
Intra-AS Routing(also known as interior gateway protocols [IGP])
我們來介紹常用的三種路由協(xié)議
RIP(Routing Information Protocol)
路由信息協(xié)議(RIP)是內(nèi)部網(wǎng)關(guān)協(xié)議中最先得到廣泛應(yīng)用的協(xié)議,是一種分布式的基于距離向量的路由選擇協(xié)議,其最大優(yōu)點就是簡單。缺點是RIP限制了網(wǎng)絡(luò)的規(guī)模,它能使用的最大距離為15(16為不可達),除此之外開銷很大。
OSPF (Open Shortest Path First)
開放最短路徑優(yōu)先協(xié)議是使用分布式鏈路狀態(tài)路由算法的典型代表。OSPF收斂速度快,適應(yīng)各種規(guī)模,將協(xié)議自身的開銷控制到最小,同時也具有良好的安全性。
Tips:
OSPF是網(wǎng)絡(luò)層協(xié)議,它不使用UDP或TCP而是直接IP數(shù)據(jù)報傳送。
Intra-AS Routing:BGP
BGP (Border Gateway Protocol): 邊界網(wǎng)關(guān)協(xié)議是不同自治系統(tǒng)的路由器之間交換路由信息的協(xié)議。邊界網(wǎng)關(guān)協(xié)議常常應(yīng)用于互聯(lián)網(wǎng)的網(wǎng)關(guān)之間。路由表包含已知路由器的列表、路由器能夠達到的地址以及到達每個路由器的路徑的跳數(shù)。
邊界網(wǎng)關(guān)協(xié)議BGP只能是力求尋找一條能夠到達目的網(wǎng)絡(luò)且比較好的路由,而并非要尋找一條最佳路由。BGP采用的是路徑向量路由選擇協(xié)議,它與距離向量協(xié)議和鏈路狀態(tài)協(xié)議有很大區(qū)別。BGP協(xié)議是應(yīng)用層協(xié)議,基于TCP的。
而BGP又分為了兩種,我們迅速地看一下
eBGP —— (external Border Gateway Protocol) 外部邊界網(wǎng)關(guān)協(xié)議,用于在不同的自治系統(tǒng)間交換路由信息。
iBGP —— (internal Border Gateway Protocol)的主要作用是向你的內(nèi)部路由器提供更多信息。iBGP路由器必須以全網(wǎng)狀結(jié)構(gòu)相連,以防止路由環(huán)回。如果使用了路由反射器或路由聯(lián)盟,那么iBGP網(wǎng)狀結(jié)構(gòu)可能遭遇收斂問題,而導致路由黑洞。
Broadcast and Multicast Routing
廣播路由選擇需要提供一種從源結(jié)點到網(wǎng)絡(luò)中的所有其他結(jié)點交付分組的服務(wù)。而多播是一對多的關(guān)系,是相對于子網(wǎng)的所有節(jié)點而言。
一筆帶過吧,說多了心痛。
Test
Q: 轉(zhuǎn)發(fā)表是如何得到的(what is the relationship between routing and forwarding)?
A: 路由選擇算法決定了插入路由器的轉(zhuǎn)發(fā)表的值,路由器接收路由選擇協(xié)議報文,該信息被用于配置其轉(zhuǎn)發(fā)表。(routing algorithm determines end-end-path through network,forwarding table determines local forwarding at this router)
Q: What are the three phases of virtual circuits?
A: 虛電路建立(VC setup)、 數(shù)據(jù)傳送(Data transfer)、虛電路拆除(VC teardown)
Q: how does network get subnet part of IP addr?
A: gets allocated portion of its provider ISP’s address space(獲取其提供程序ISP的地址空間的分配部分。)
Q: How do you migrate from IPV4 to IPV6?
A: 1.雙棧(dual-stack),2.建隧道(tunnel)
Link Layer and LAN
首先,能看到現(xiàn)在,我對你的生命力感到由衷的欽佩。
但是革命仍未結(jié)束,同志仍須努力
About Service
其設(shè)計的初衷就是順利為網(wǎng)絡(luò)層提供數(shù)據(jù)服務(wù),不考慮可靠性,可靠性的部分由傳輸層的TCP協(xié)議實現(xiàn)
為了使數(shù)據(jù)鏈路層能更好地適應(yīng)多種局域網(wǎng)標準,802 委員會就將局域網(wǎng)的數(shù)據(jù)鏈路層拆成兩個子層:
- 邏輯鏈路控制
LLC (Logical Link Control)
子層 - 媒體接入控制
MAC (Medium Access Control)
子層。
數(shù)據(jù)鏈路層使用的信道主要有以下兩種類型:
- 點對點信道
- 廣播信道(多用于LAN)
點對點信道的數(shù)據(jù)鏈路層的協(xié)議數(shù)據(jù)單元為幀(frame
)
點對點信道的數(shù)據(jù)鏈路層在進行通信時的主要步驟:
(1)結(jié)點A的數(shù)據(jù)鏈路層把網(wǎng)絡(luò)層交下來的IP數(shù)據(jù)報添加首部和尾部封裝成幀。
(2)結(jié)點A把封裝好的幀發(fā)送給結(jié)點B的數(shù)據(jù)鏈路層。
(3)若結(jié)點B的數(shù)據(jù)鏈路層收到的幀無差錯,則從收到的幀中提取出IP數(shù)據(jù)報上交給上面的網(wǎng)絡(luò)層;否則丟棄這個幀。
<center><font color="gray">網(wǎng)絡(luò)適配器之間的通信</font></center>
幀同步雖然可以區(qū)分每個數(shù)據(jù)幀的起始和結(jié)束,但是還沒有解決數(shù)據(jù)正確傳輸?shù)膬煞矫鎲栴}:一、如果有幀出現(xiàn)了錯誤?二、如果有幀丟失了呢?這都是數(shù)據(jù)鏈路層確保向網(wǎng)絡(luò)層提供可靠數(shù)據(jù)傳輸服務(wù)時需要解決的問題,也就是數(shù)據(jù)鏈路層的差錯控制功能。
Error-Detection and -Correction Techiniques(錯誤檢測與糾正)
錯誤檢測
在數(shù)據(jù)鏈路層檢測數(shù)據(jù)傳輸錯誤的方法一般是通過對差錯編碼進行校驗來實現(xiàn),常見的有奇偶校驗碼
和循環(huán)冗余校驗(CRC)
Parity Checks
沒啥好說的,最后一位設(shè)置校驗位即可,我相信你懂
Cyclic Redundancy Checks
我們主要說說這個,循環(huán)冗余校驗是一種根據(jù)傳輸或保存的數(shù)據(jù)而產(chǎn)生固定位數(shù)校驗碼的方法,主要用來檢測或校驗數(shù)據(jù)傳輸或者保存后可能出現(xiàn)的錯誤。生成的數(shù)字在傳輸或者儲存之前計算出來并且附加到數(shù)據(jù)后面,然后接收端進行檢驗確定數(shù)據(jù)是否發(fā)生變化。(好像是考點,你最好看看)
CRC碼可能看起來是這個樣子
我們來舉一個CRC計算的例子方便入門
【說明】“模2除法”與“算術(shù)除法”類似,但它既不向上位借位,也不比較除數(shù)和被除數(shù)的相同位數(shù)值的大小,只要以相同位數(shù)進行相除即可。
緩一口氣,我們再看下一個對鏈路層很重要的問題:如何協(xié)調(diào)多個發(fā)送和接收節(jié)點對一個共享廣播信道的訪問?這就是多路訪問問題了。
Multiple access protocols
多路訪問協(xié)議大致分為3種:信道劃分協(xié)議(channel partitioning
)、隨機接入?yún)f(xié)議(random access
)和輪流協(xié)議(taking turns
)。
信道劃分
TDMA: time division multiple access (時分多路復用)
TDM將時間劃分為時間幀,并進一步劃分每個時間幀為N個時隙。TDM消除了碰撞,而且非常公平(R/Nbps的速率)。但是它有兩個缺陷:節(jié)點被限制于R/Nbps的平均速率。節(jié)點必須等待它在傳輸序列中的輪次。
FDMA: frequency division multiple access (頻分多路復用)
FDM將Rbps信道劃分為不同的頻段(每個頻段具有R/N帶寬),并把每個頻率分配給N個節(jié)點中的一個。不過它跟TDM的優(yōu)缺點一樣。
CDMA: code division multiple access (碼分多路復用)
我們后續(xù)在無線網(wǎng)中說到
隨機接入
在隨機接入?yún)f(xié)議中,一個傳輸節(jié)點總是以信道的全部速率(即Rbps)進行發(fā)送。當有碰撞時,涉及碰撞的每個節(jié)點反復地重發(fā)它的幀,直到該幀無碰撞地通過為止。但是當一個節(jié)點經(jīng)受一次碰撞時,它不必立刻重發(fā)該幀。相反,它在重發(fā)該幀之前等待一個隨機時延。這里介紹最常用隨機接入?yún)f(xié)議,即ALOHA協(xié)議
和載波偵聽多路訪問協(xié)議(CSMA)
。
ALOHA
ALOHA又分為 Pure ALOHA
和 Slotted ALOHA
- 純ALOHA:簡單,當傳輸點有數(shù)據(jù)需要傳送的時候,它會向立即向通訊頻道傳送。可能會引發(fā)不少沖突(ef=0.18,糟糕的傳輸率)
- 時隙ALOHA:這是對純ALOHA協(xié)議的一個改進。改進之處在于,它把頻道在時間上分段,每個傳輸點只能在一個分段的開始處進行傳送。每次傳送的數(shù)據(jù)必須少于或者等于一個頻道的一個時間分段。這樣很大的減少了傳輸頻道的沖突。效率是
1/e=0.37
CSMA (carrier sense multiple access)
關(guān)于CSMA,如果比喻成與人談話,有禮貌的人談話有兩個重要規(guī)則:
第一:說話之前先聽。
第二:如果與他人同時開始說話,停止說話。
說話前先聽,也就是載波偵聽(carrier sensing),即一個節(jié)點在傳輸前先聽信道。如果來自另一個節(jié)點的幀正向信道上發(fā)送,節(jié)點則等待一段隨機時間后再偵聽信道。如果偵聽到時空閑的,則開始傳輸,否則再等待另一段隨機時間,繼續(xù)重復整個過程。
如果同時說話,那么都停止說話,在網(wǎng)絡(luò)領(lǐng)域中被稱為碰撞檢測(collision detection),即一個傳輸節(jié)點在傳輸時一直在偵聽信道,如果它檢測到另一節(jié)點正在傳輸干擾幀,它就停止傳輸,用某個協(xié)議來確定應(yīng)該在什么時候再嘗試下一次傳輸。
這兩個規(guī)則包含在載波偵聽多路訪問(CSMA)和具有碰撞檢測的CSMA(CSMA with Collision Detection, CSMA/CD)協(xié)議族中。
Expand:
CSMA/CD efficiency=1/(1+5tprop/ttrans)
輪流協(xié)議
這里討論比較重要的兩種協(xié)議。第一種是輪詢協(xié)議(polling protocol
),要求這些節(jié)點之一要被指定為主節(jié)點。主節(jié)點以循環(huán)的方式輪詢每個節(jié)點。輪詢協(xié)議消除了困擾隨機接入?yún)f(xié)議的碰撞和空時隙,使得輪詢?nèi)〉酶叩枚嗟男省5灿腥秉c,第一個缺點是該協(xié)議引入輪詢時延
,即通知一個節(jié)點它可以傳輸所需的時間。第二個缺點就是主節(jié)點有故障,整個信道將變得不可操作。第二種輪流協(xié)議是令牌傳遞協(xié)議(token-passing protocol
),在這個協(xié)議中沒有主節(jié)點。一個小的稱為令牌的特殊目的幀在節(jié)點之間以某種固定的次序進行交換。
polling
token-passing
link-Layer Addressing
MAC address
MAC(Medium/Media Access Control)地址,用來表示互聯(lián)網(wǎng)上每一個站點的標識符,采用十六進制數(shù)表示(hexadecimal (base 16) notation
),共六個字節(jié)(48位)。
ARP協(xié)議(Address Resolution Protocol)
直白的說法是:在IP以太網(wǎng)中,當一個上層協(xié)議要發(fā)包時,有了該節(jié)點的IP地址,ARP就能提供該節(jié)點的MAC地址。
Tips:
ARP協(xié)議只使用于局域網(wǎng)中,點對點的連接是不需要ARP協(xié)議的,ARP協(xié)議的基本功能就是通過目標設(shè)備的IP地址,查詢目標設(shè)備的MAC地址,以保證通信的順利進行。
ARP協(xié)議的本質(zhì)是完成網(wǎng)絡(luò)地址到物理地址的映射。從概念上將就是找到一個映射方法f,使得“物理地址 = f(網(wǎng)絡(luò)地址)“。物理地址有兩種基本類型:以太網(wǎng)類型和令牌環(huán)網(wǎng)類型。網(wǎng)絡(luò)地址特指IP地址,對映射方法的要求就是高效。
Ethernet
我們可以將 802.3 局域網(wǎng)簡稱為“以太網(wǎng)”
Tips:
這里不做過多講解,有興趣可以翻閱查看以太網(wǎng)的幀結(jié)構(gòu),只需知道它所用的MAC協(xié)議是CSMA/CD就好
Link-Layer Switches
老師說不是重點,所以祝愿各位自學成才
Test
Q: Where is the link layer implemented?
A: in a network adapter.(network interface card,NIC).
Q: LAN according to the topology which can be divided into several kinds?
A: 總線結(jié)構(gòu)、環(huán)型結(jié)構(gòu)、星型結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)、樹型結(jié)構(gòu)以及混合型結(jié)構(gòu)。
Q: Why does the ARP query need to be sent in the broadcast frame?Why does the ARP response have to be sent in a frame containing a specific destination MAC address?
A:ARP查詢的目的是為了獲取目標主機的物理地址,在網(wǎng)絡(luò)通訊中,無明確地址的通訊只能通過廣播方式來進行。因為ARP響應(yīng)對象在收到ARP廣播后向ARP廣播機器反饋自己的MAC信息就需要向ARP廣播方發(fā)送這個報文.而ARP廣播方是已知道MAC地址的,所以反饋信息的時候會帶上具體的MAC地址,如果該報文不帶具體MAC地址的話,將會引起連綿不絕的網(wǎng)絡(luò)風暴。
沒想到吧,你已經(jīng)不知不覺看完了本書的許多重點,雖然你應(yīng)該沒懂多少,但效果還是有的對吧。少俠留步,還有一些無線網(wǎng)和移動網(wǎng)的知識我們沒說,咱們下節(jié)繼續(xù)。
Wireless and Mobile Network
喜大普奔,我們迎來了最后一章,是不是內(nèi)心還有點小竊喜,廢話說了很多,我們進入正題。
無線網(wǎng)絡(luò)(wireless network)是采用無線通信技術(shù)實現(xiàn)的網(wǎng)絡(luò)。無線網(wǎng)絡(luò)既包括允許用戶建立遠距離無線連接的全球語音和數(shù)據(jù)網(wǎng)絡(luò),也包括為近距離無線連接進行優(yōu)化的紅外線技術(shù)及射頻技術(shù),與有線網(wǎng)絡(luò)的用途十分類似,最大的不同在于傳輸媒介的不同,利用無線電技術(shù)取代網(wǎng)線,可以和有線網(wǎng)絡(luò)互為備份。
無線網(wǎng)絡(luò)的三個主要構(gòu)成:
- Wireless hosts
- Wireless links
- Base station
特點:
1、有線:需要設(shè)備之間使用網(wǎng)線連接,這樣限制了設(shè)備之間的距離。
2、無線:通過無線協(xié)議實現(xiàn)數(shù)據(jù)傳輸或者網(wǎng)絡(luò)連接,一般室內(nèi)50m范圍內(nèi)可以全方位傳輸數(shù)據(jù)。不過無線容易被電磁波干擾,而且墻壁對信號削弱也比較大。
一般室內(nèi)使用,建議直接無線。
無線網(wǎng)中極其重要的一個協(xié)議是CDMA,我們具體看看應(yīng)用場景
WiFi: 802.11 Wireless LANs
IEEE 802.11是現(xiàn)今無線局域網(wǎng)通用的標準,兩個設(shè)備可以自行構(gòu)建臨時網(wǎng)絡(luò),也可以在基站(Base Station, BS
)或者接入點(Access Point,AP
)的協(xié)調(diào)下通信。為了在不同的通訊環(huán)境下取得良好的通訊質(zhì)量,采用CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)
的硬件溝通方式
Expands:
802.11和Wi-Fi技術(shù)并不是同一個東西。Wi-Fi標準是802.11標準的一個子集,并且是Wi-Fi聯(lián)盟負責管理
WLAN有以下三種網(wǎng)絡(luò)拓撲結(jié)構(gòu):
1) 獨立基本服務(wù)集(Independent BSS, IBSS)網(wǎng)絡(luò)(也叫ad-hoc網(wǎng)絡(luò))
2) 基本服務(wù)集(Basic Service Set, BSS)網(wǎng)絡(luò)
3) 擴展服務(wù)集(Extent Service Set, ESS)網(wǎng)絡(luò)
AD-Hoc網(wǎng)絡(luò)
BSS網(wǎng)絡(luò)
對于個人PC來說,使用最多的所謂"無線Wi-Fi"指的就是BSS網(wǎng)絡(luò)模式,我們通過AP(Access Point)
接入點來接入網(wǎng)絡(luò)
ESS網(wǎng)絡(luò)
其中,ESS中的DS(分布式系統(tǒng))是一個抽象系統(tǒng),用來連接不同BSS的通信信道(通過路由服務(wù)),這樣就可以消除BSS中STA與STA之間直接傳輸距離受到物理設(shè)備的限制。
Tips:
記住每一個AP都有一個SSID(Service Set Identifier),SSID技術(shù)可以將一個無線局域網(wǎng)分為幾個需要不同身份驗證的子網(wǎng)絡(luò),每一個子網(wǎng)絡(luò)都需要獨立的身份驗證,只有通過身份驗證的用戶才可以進入相應(yīng)的子網(wǎng)絡(luò),防止未被授權(quán)的用戶進入本網(wǎng)絡(luò)
Beyond 802.11:Bluetooth and WiMAX
藍牙:802.15協(xié)議,WiMAX:802.16協(xié)議
Celluar Internet Access
蜂窩網(wǎng)絡(luò)或移動網(wǎng)絡(luò)(Cellular network)是一種移動通信硬件架構(gòu),把移動電話的服務(wù)區(qū)分為一個個正六邊形的小子區(qū),每個小區(qū)設(shè)一個基站,形成了形狀酷似“蜂窩”的結(jié)構(gòu),因而把這種移動通信方式稱為蜂窩移動通信方式。
蜂窩網(wǎng)絡(luò)又可分為模擬蜂窩網(wǎng)絡(luò)和數(shù)字蜂窩網(wǎng)絡(luò),主要區(qū)別于傳輸信息的方式。
蜂窩網(wǎng)絡(luò)組成主要有以下三部分:移動站,基站子系統(tǒng),網(wǎng)絡(luò)子系統(tǒng)。移動站就是網(wǎng)絡(luò)終端設(shè)備,比如手機或者一些蜂窩工控設(shè)備。基站子系統(tǒng)包括移動基站(大鐵塔)、無線收發(fā)設(shè)備、專用網(wǎng)絡(luò)(一般是光纖)、無線的數(shù)字設(shè)備等等的。基站子系統(tǒng)可以看作是無線網(wǎng)絡(luò)與有線網(wǎng)絡(luò)之間的轉(zhuǎn)換器。
便于理解,我們以GSM網(wǎng)絡(luò)為研究對象(找了半天,終于有張不錯的圖)
我們來分析下構(gòu)成
GSM數(shù)字移動通信系統(tǒng)主要由移動交換系統(tǒng)NSS
,基站子系統(tǒng)BSS
,維護操作子系統(tǒng)OMS
和移動臺MS
構(gòu)成,下面具體描述各部分的功能。
我們先從BSS看,BSS是NSS和MS之間的橋梁,主要完成無線通信管理和無線收發(fā)功能。BSS主要包括基站控制器BSC和基站收發(fā)信臺BTS兩個部分。
- BSC(Base Station Controller):基站控制器,處理所有的與無線信號有關(guān)的工作:小區(qū)的切換、無線資源管理等。位于MSC與BTS之間,具有對一個或者多個BTS進行控制和管理的功能,主要完成無線信道的分配、BTS和MS發(fā)射功率的控制以及越區(qū)信道切換等功能。BSC也是一個小型的交換機,它把局部網(wǎng)絡(luò)匯集后通過A接口與MSC相連。
- BTS(Base Transceiver Controller):基站收發(fā)信機,負責無線信號的收發(fā)。基站子系統(tǒng)的無線收發(fā)設(shè)備,由BSC控制,主要負責無線傳輸功能,完成無線與有線的轉(zhuǎn)換、無線分集、無線信道加密、跳頻等功能。BTS通過Abis接口與BSC相連,通過空中接口Um與MS相連。此外BSS系統(tǒng)還包括編碼變換和速率適配單元TRAU。TRAU通常位于BSC與MSC之間,主要完成16kbps的RPE-LTP編碼和64kbps的A律PCM編碼之間的碼型變換。
我們可以從圖中看到,一個cell的構(gòu)成由Base station
,Mobile user
,和air-interface
三個部分參與
再轉(zhuǎn)而去看NSS中的MSC,MSC(Mobile Service Switching Center)
:移動業(yè)務(wù)交換中心,GSM系統(tǒng)的核心,完成基本交換的動作和通訊連接,是一個重要接口
其他部分不作詳細描述
之前可能遺漏的知識點
鏈路層提供的通信方式
串行通訊的基本概念:與外界的信息交換稱為通訊.基本的通訊方式有并行通訊和串行通訊兩種.
一條信息的各位數(shù)據(jù)被同時傳送的通訊方式稱為并行通訊.并行通訊的特點是:各數(shù)據(jù)位同時傳送,傳送速度快、效率高,但有多少數(shù)據(jù)位就需多少根數(shù)據(jù)線,因此傳送成本高,且只適用于近距離(相距數(shù)米)的通訊.
一條信息的各位數(shù)據(jù)被逐位按順序傳送的通訊方式稱為串行通訊.串行通訊的特點是:數(shù)據(jù)位傳送,傳按位順序進行,最少只需一根傳輸線即可完成,成本低但送速度慢.串行通訊的距離可以從幾米到幾千米.
根據(jù)信息的傳送方向,串行通訊可以進一步分為單工、半雙工和全雙工三種
。信息只能單向傳送為單工;信息能雙向傳送但不能同時雙向傳送稱為半雙工;信息能夠同時雙向傳送則稱為全雙工
IP子網(wǎng)劃分
我們之前提到過ip地址劃分為5類,在日常網(wǎng)絡(luò)環(huán)境中,基本是都在使用B,C兩大類地址,而ADE這3類地址都不大可
能被使用到。
子網(wǎng)掩碼的簡單敘述:子網(wǎng)掩碼是一個32位地址,用于屏蔽IP地址的一部分以區(qū)別網(wǎng)絡(luò)標識和主機標識,并說明該IP地址是在局域網(wǎng)上,還是在遠程網(wǎng)上。
接下來我們可以看一下子網(wǎng)劃分的例子:
假如給你一個C類的IP地址段:
192.168.0.1-192.168.0.254,其中192.168.0 這個屬于網(wǎng)絡(luò)號碼,而1~254表示這個網(wǎng)段中最大能容納254臺電腦主機。我們現(xiàn)在要做的就是把這254臺主機再次劃分一下,將它們區(qū)分開來。
192.168.0.1-192.168.0.254默認使用的子網(wǎng)掩碼為255.255.255.0,其中的0在2進制中表示,8個0.因此有8個位置沒有被網(wǎng)絡(luò)號碼給占用,2的8次方就是表示有256個地址,去掉一個頭(網(wǎng)絡(luò)地址)和一個尾(主機地址),表示有254個電腦主機地址,因此我們想要對這254來劃分的話,就是占用最后8個0中的某幾位。
假如占用第一個0.那么2進制表示的子網(wǎng)掩碼為
11111111.11111111.11111111.10000000。轉(zhuǎn)換為10進制就為255.255.255.128,那么這時電腦主機應(yīng)該為多少?其實很簡單,就是2的7次方了(不再是原來的2的8次方了),2的7次方=128,因此假如子網(wǎng)掩碼為255.255.255.128的話,這個C類地址可以被區(qū)分為2個網(wǎng)絡(luò),每個網(wǎng)絡(luò)中最多
有128臺主機。 192.168.0.1-192.168.0.127為一個,192.168.0.128-192.168.0.255為第二個。
再舉個例子,假如還是C類地址,其IP范圍為192.168.0.1-192.168.0.254,假如子網(wǎng)掩碼255.255.255.192(也就是最后8為主機位,
被占用了2位,2進制表示為11111111.11111111.11111111.11000000),
那么這個網(wǎng)段的電腦主機數(shù)目就是2的6次方=64臺,總共有2的2次方=4個網(wǎng)段。第一個網(wǎng)段為192.168.0.1-192.168.0.63,第二個網(wǎng)段為192.168.0.64-192.168.0.127,第三個網(wǎng)段為192.168.0.127-192.168.0.191,第四個
網(wǎng)段為192.168.0.192-192.168.0.254。
如果你想結(jié)合實際情境去劃分,請戳Me
Summary
到此,我們整個計算機網(wǎng)絡(luò)就學習完畢了,不知道你從中看懂了多少,反正我是不抱太大期望。筆者雖然從頭寫了一遍,零零散散加起來歷時兩天,這個過程比較辛苦但也比較值得。能看到許多自己智商急需充值的地方我還是很欣慰的。至于各位的領(lǐng)悟程度,我只能從內(nèi)心祝福我的朋友們能考試順利拿到高分(ji ge jiu hao)
另外對于其他的網(wǎng)友而言,你可以把它當作一篇由淺入深的筆記,里面網(wǎng)羅了許多知識,需要靜靜品讀,勤加思考才會有充足的收獲,切勿急躁,相信如果你全部理解,你一定是天縱之才!
-End
by:小栗子
參考作者博文:
計算機網(wǎng)絡(luò)層 / 傳輸層之多路復用與多路分解 / 可靠數(shù)據(jù)傳輸原理(上) / 可靠數(shù)據(jù)傳輸原理(下) /
計算機網(wǎng)絡(luò)傳輸層 / 網(wǎng)絡(luò)層學習筆記 / LS和DV算法的比較 / BGP講解 / 多路訪問協(xié)議 /
計算機網(wǎng)絡(luò)數(shù)據(jù)鏈路層 / ARP協(xié)議詳解 / 局域網(wǎng)&以太網(wǎng) / 802.11協(xié)議幀 / GSM網(wǎng)絡(luò)結(jié)構(gòu) / 串口掃盲