目錄
- 計算機網絡系統的主要功能
- TCP/IP模型與OSI模型的層次結構及各層功能。(掌握)
- TCP/IP參考模型各層次所對應的主要設備
- 局域網的體系結構與IEEE.802標準
- 數據鏈路層的編址方式和主要設備原理
- 數據鏈路層CSMA/CD的技術原理
- 交換機VLAN原理與劃分方法
- 數據鏈路層數據檢錯與糾錯方法
- 檢錯法
- 糾錯法
- 交換機和路由器的一些常用配置命令 (略)
- 網絡拓撲連接線的選擇方式
- IP數據包的主要字段含義與應用(掌握)
- IP數據包分段與重組(掌握)
- IP分片
- 網絡層目前使用的主要協議
- IP地址、網關地址、子網掩碼的概念
- IP地址
- 網關地址
- 子網掩碼
- IP地址分類(A/B/C、私有)與子網劃分技術(掌握)
- 子網劃分
- 最短路徑Dijsktra算法原理(掌握)
- 傳輸層的兩種主要協議(TCP/UDP)
- 傳輸層的端到端通信編址方式
- Windows常用的一些網絡命令(略)
- 各種常用網絡協議所處的層次結構
- TCP建立連接與釋放連接的三次握手過程
- 三次握手
- 四次揮手
- 小結
計算機網絡系統2021復習提綱
計算機網絡系統的主要功能
計算機網絡系統指的是把不同地理位置的擁有獨立工作能力的計算機通過通信線路連接起來,并配置網絡軟件,以實現計算機資源共享的系統。
主要功能如下:
-
數據通信:例如電子郵件,發布新聞等等
-
資源共享:硬件資源共享:例如網絡打印機等
軟件資源共享:例如FTP,網上影院等 -
負載均衡:例如Client/Server模式,協同式計算等
-
提高可靠性:資料備份,分布式存儲等
-
分布式處理:大型問題協作求解等
TCP/IP模型與OSI模型的層次結構及各層功能。(掌握)
對于OSI七層模型:
-
物理層:比特流方式傳輸,定義了接口的機械、電氣特性
-
數據鏈路層:傳輸數據幀,實現點對點連接
-
網絡層:傳輸數據包;負責尋址,將IP地址轉換成MAC地址;協調發送、傳輸、接收設備能力
-
傳輸層:傳輸數據報文;保證不同子網的設備間數據包的可靠、順序、無錯傳輸;實現端到端的連接
將受到的亂序數據包重新排序,并驗證所有的分組是否都已經收到
-
會話層:對上層提供會話服務;對會話進行管理,保證會話數據可靠傳輸;在兩結點間建立、維護、釋放面向用戶的連接
-
表示層:定義數據格式、是否加密或壓縮。
-
應用層:提供各種網絡服務
對于TCP/IP四層模型:
- 網絡接口層:TCP/IP模型的最底層,負責接收從網絡層交來的IP數據報并將IP數據報通過底層物理網絡發送出去,或者從底層物理網絡上接收物理幀,抽出IP數據報,交給網絡層
- 網絡層:網絡層負責獨立地將分組從源主機送往目的主機,涉及到為分組提供最佳路徑地選擇和交換功能,并使這一過程與它們所經過地路徑和網絡無關。
- 傳輸層:在源結點和目的結點的兩個對等實體間提供可靠的端到端的數據通信。為保證數據傳輸的可靠性,傳輸層協議提供了確認、差錯控制和流量控制等機制。傳輸層從應用層接收數據,并且在必要的時候把它分成較小的單元,傳遞給網絡層,并確保到達對方的各段信息正確無誤。
TCP/IP參考模型各層次所對應的主要設備
- 計算機工作在應用層、傳輸層和網絡層
- 計算機網卡工作在數據鏈路層和物理層
- 集線器工作在物理層
- 路由器接口工作在物理層和數據鏈路層,路由器根據IP首部轉發數據包,所以路由器工作在網絡層
- 交換機根據MAC地址轉發幀,MAC地址屬于數據鏈路層地址,所以交換機工作在數據鏈路層。交換機接口也有物理層功能。
局域網的體系結構與IEEE.802標準
局域網LAN是將小區域內的各種通信設備互連在一起的通信網絡。
按照 IEEE802 標準,局域網體系結構分為三層,即物理層,媒體鏈路控制層(MAC),邏輯鏈路控制層(LLC)
主要功能如下:
- 物理層(PHY):處理物理鏈路上傳輸的比特流;建立、維護、撤銷物理連接,處理機械、電氣特性
- 媒體訪問控制(MAC): 負責控制對傳輸介質的訪問,幀的尋址,識別等
- 邏輯鏈路控制層(LLC):負責數據幀的封裝和拆除。提供面向連接和非連接的服務
局域網IEEE802標準
- IEEE802.3:以太網技術(CSMA/CD)
- IEEE802.4:令牌環(Token-Ring)
- IEEE802.5:令牌總線(Token-Bus)
數據鏈路層的編址方式和主要設備原理
計算機通信表現為數據包從某種形式的鏈路上的初始節點出發,從一個節點傳遞到另一個節點,最終傳送到目的節點。數據包在節點間的移動是由**地址解析協議(ARP)**負責將IP地址映射到MAC地址上來完成的。
- MAC地址,也叫硬件地址,長48bit(6byte),通常表示為12個16進制數
- 網卡的MAC地址由網卡生產廠家燒入網卡的EPROM
從已知IP地址找到對應MAC地址的映射叫做正向地址解析,協議為ARP
從已知MAC地址找到對應IP地址的映射叫做反向地址解析,協議為RARP
交換機原理
工作原理
? 當交換機收到數據時,它會檢查它的目的MAC地址,然后把數據從目的主機所在的接口轉發出去。交換機之所以能實現這一功能,是因為交換機內部有一個MAC地址表,MAC地址表記錄了網絡中所有MAC地址與該交換機各端口的對應信息。某一數據幀需要轉發時,交換機根據該數據幀的目的MAC地址來查找MAC地址表,從而得到該地址對應的端口,即知道具有該MAC地址的設備是連接在交換機的哪個端口上,然后交換機把數據幀從該端口轉發出去。
算法:
1、如果數據幀的目的MAC地址是廣播地址或者組播地址,則向交換機所有端口轉發2、如果數據幀的目的MAC地址是單播地址,且這個地址不在交換機的MAC地址表中,也會向所有端口轉發3、如果數據幀的目的地址在交換機的MAC地址表中,那么就根據地址表轉發到相應的端口4、如果數據幀目的地址和源地址在同一個網段丟棄該數據幀
數據鏈路層CSMA/CD的技術原理
載波偵聽多路訪問/沖突檢測 是一種局域網技術。
工作原理:先聽后發,邊聽邊發,沖突停止隨機延時后重發。競爭機制,較輕負荷下效率高,不適用實時傳輸。
交換機VLAN原理與劃分方法
VLAN的工作原理:在網絡中應用VLAN技術的主要目的是:把一個大的廣播域分成多個小的廣播域,使其互不影響,互不沖突。VLAN之間如果不使用路由器或三層交換機是不能通信的。這樣就解決了交換網絡中因為某一個小故障產生的廣播風暴而使整個網絡癱瘓的問題。當一個VLAN里面出現廣播風暴時,受影響的只是這個VLAN本身。而整個網由于被分成了多個VLAN(也就是多個廣播域),所以網絡的其它部分不會受到廣播風暴的影響,從而最大程度地為提高網絡的安全性能提供了可靠保障。
VLAN劃分方法:1)基于端口;2)基于MAC地址;3)基于協議;4)基于子網;5)基于組播;6)基于策略。
數據鏈路層數據檢錯與糾錯方法
檢錯法
- 奇偶校驗碼:包括冗余位在內的數據碼元中1的個數保持為奇數(奇校驗)或偶數(偶校驗),可以用來檢測單個錯誤。
- 循環冗余校驗碼CRC:一種多項式的編碼方式。將位串看成是系數為0或1的多項式,K位的幀看作是一個K-1階次多項式的系數列表。如110001可以看作是X5+X4+1。
糾錯法
- 糾錯碼 檢驗傳輸過程中是否出錯并糾正錯誤
–碼字:n=m(數據位)+ r(冗余位)
–海明距離:兩個碼字不相同的位的個數
檢測d比特錯誤需要距離為d+1比特的編碼
糾正d比特錯誤需要距離為2d+1比特的編碼
交換機和路由器的一些常用配置命令 (略)
網絡拓撲連接線的選擇方式
拓撲的選擇需要考慮到:經濟性,靈活性,可靠性
IP數據包的主要字段含義與應用(掌握)
IP數據包首部格式能夠說明ip協議都具有什么功能。
IP數據包由首部和數據兩部分組成。首部前一部分是固定長度,共20個字節,是所有IP數據包必須有的。在首部固定部分的后面是一些可選字段,其長度是可變的。
-
版本:占4位,指的是IP協議的版本,目前有兩個版本IPv4、IPv6
-
首部長度:占4位,表示首部長度有多少個字節,如果為1111(十進制15),說明首部長度為60byte
-
區分服務:占8位,配置計算機給特定應用程序的數據博愛添加一個標志,然后再配置網絡中的路由器優先轉發這些帶標志的數據包,在網絡帶寬比較緊張的情況下,也能確保這種應用的帶寬有保障。區分服務,就是為服務確保服務質量
-
總長度:占16位,指IP首部和數據之和的長度,也就是數據包的長度,單位為byte。16位,所以數據包的最長長度位2^16-1 = 65535byte。
-
標識:占16位,IP軟件在存儲器中維持一個計數器,每產生一個數據包,計數器就加1,并將此值賦給標識字段。但這個標識并不是序號,因為IP是無連接服務,數據包不存在按序接受的問題。當數據包由于長度超過網絡的MTU( 最大傳輸單元 )時,需要分片。同一個數據包被分成多個片,這些片的標識都一樣,也就是數據包這個標識字段的值就被復制到所有的數據包分片的標識字段中。相同的標識字段的值使得分片后的各個數據包片最后能正確地重裝成為原來地數據包。
Tips:IP層下面的每一種數據鏈路層都有其特有的幀格式,幀格式也定義了 幀中數據字段的最大長度,數據字段最大長度稱為MTU。如果所傳送的數據包長度超過數據鏈路層的MTU值,就必須把過長的數據包進行分片處理。 -
標志:占3位,目前只有兩位有意義。標志字段中的最低為記為MF。MF=1即表示后面還有分片的數據包。MF=0表示自己是若干數據包片中的最后一個。標志字段中間的一位記為DF,意思是不能分片。只有當DF=0是才允許分片。
-
片偏移:占13位,意思是:較長的分組在分片后,某片在原分組中的相對位置。也就是說相對于用戶數據字段的起點,該片從何處開始。偏移以8個字節為偏移單位。也就是說每個分片的長度一定是8字節的整數倍。
-
生存時間:占8位,TTL,表示數據包在網絡中的壽命,現在指的是跳數限制,例如在無向圖中有跳數限制的求最短路徑
-
協議:占8位,協議字段指出此數據包攜帶的數據是使用何種協議,以便使目的主機的網絡層知道應該獎數據部分上交給哪個處理。
-
首部校驗和:占16位,只檢驗數據包的首部,不包括數據部分。因為數據包每經過一個路由器,路由器都要重新計算一下首部檢驗和,不檢驗數據部分可以減少計算量
IP數據包分段與重組(掌握)
IP分片
網絡鏈路存在MTU(最大傳輸單元)——鏈路層數據幀可封裝數據的上限,并且不同鏈路的MTU也不同。當大IP分組向較小MTU鏈路轉發時,需要將IP數據報分片,所有IP分片到達目的主機后再進行重組。
分片發送與重組由源主機與目的主機進行,路由器只做分片不做重組 :
網絡層目前使用的主要協議
IPv4 OR IPv6
ICMP協議
ICMP協議是TCP/IP協議棧中的網絡層的一個協議,ICMP是Internet控制報文協議用于在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。
ICMP報文是在IP數據報內部被傳輸的,它封裝在IP數據報內。ICMP報文通常被IP層或者傳輸層TCP或UDP使用。一些ICMP報文把差錯報文返回給用戶進程。
ICMP報文分為:請求報文、響應報文、差錯報告報文。
ARP協議
ARP協議的作用,將以太網中的計算機的IP地址解析成MAC地址。
ARP協議是建立在網絡中各個主機互相信任的基礎上的,計算機A發送ARP廣播幀解析計算機C的MAC地址,同一個網段中的計算機都能收到這個APR請求消息,任何一個主機都可以給計算機A發送APR應答消息,可以告訴計算機A一個錯誤的MAC地址,計算機A收到APR應答報文時不會檢測該報文的真實性,就會將其輯如本機APR緩存,這就存在一個安全隱患。
IGMP協議
internet組管理協議稱為IGMP協議,是因特網協議家族中的一個組播協議。該協議運行在主機和組播路由器之間,IGMP協議是網絡層協議,首先要清除什么是組播通信,組播也稱為多播。
流媒體服務器就像是電視臺,多播地址相當于不同的頻道。可以使用兩個組播地址向網絡中發送兩個課程的視頻。網絡中的計算機綁定到哪個多播地址就能夠收到哪個視頻課程。
IP地址、網關地址、子網掩碼的概念
IP地址
IP地址由網絡號和主機號兩部分構成,具有相同網絡號的設備接口處于同一個IP子網內,在同一個IP子網內的設備可以不跨越路由器就可以彼此通信,而處于不同子網的設備通信必須經過路由器轉發。
IP地址長度為二進制32位,每8位為一組,共4組
網關地址
網關實質上是一個網絡通向其他網絡的IP地址。比如有網絡A和網絡B,網絡A的IP地址范圍為“192.168.1.1~192. 168.1.254”,子網掩碼為255.255.255.0;網絡B的IP地址范圍為“192.168.2.1~192.168.2.254”,子網掩碼為255.255.255.0。在沒有路由器的情況下,兩個網絡之間是不能進行TCP/IP通信的,即使是兩個網絡連接在同一臺交換機(或集線器)上,TCP/IP協議也會根據子網掩碼(255.255.255.0)與主機的IP 地址作 “與” 運算的結果不同判定兩個網絡中的主機處在不同的網絡里。而要實現這兩個網絡之間的通信,則必須通過網關。如果網絡A中的主機發現數據包的目的主機不在本地網絡中,就把數據包轉發給它自己的網關,再由網關轉發給網絡B的網關,網絡B的網關再轉發給網絡B的某個主機。網絡A向網絡B轉發數據包的過程。
所以說,只有設置好網關的IP地址,TCP/IP協議才能實現不同網絡之間的相互通信。那么這個IP地址是哪臺機器的IP地址呢?網關的IP地址是具有路由功能的設備的IP地址,具有路由功能的設備有路由器、啟用了路由協議的服務器(實質上相當于一臺路由器)、代理服務器(也相當于一臺路由器)。
子網掩碼
子網掩碼(subnetmask)通常與IP地址配對出現,其功能是告知主機或路由設備,IP地址的哪一部分代表網絡號部分,哪一部分代表主機號部分。在子網掩碼中,與IP地址中的網絡位部分對應的位取值為“1”,而與IP地址主機部分對應的位取值為“0”。這樣通過將子網掩碼與相應的IP地址進行求“與”操作,就可決定給定的IP地址所屬的網絡號(包括子網絡信息)
IP地址分類(A/B/C、私有)與子網劃分技術(掌握)
ABC類IP地址判斷
A類,net-id = 8,開頭0,1.0.0.1 ~ 126.255.255.254 最大網絡數:126 = 2^7-2 最大主機數:16777214 = 2^24-2
B類,net-id = 16,開頭10 2^14-2 2^16-2
C類,net-id = 24,開頭110 2^21-2 2^8-2
對于A/B/C類地址的前8位范圍:
A:1-126
B:128-191
C:192-223
子網掩碼對應:
255.0.0.0
255.255.0.0
255.255.255.0
主機部分
全0,網絡地址
全1,廣播地址,某一個網段的所有結點
網絡部分127
如127.0.01,主機部分任意 回環地址,發出的數據又回到本機
私有地址;
私有地址——只用于內部網絡,在公共互聯網上這些地址是無效的。私有地址是非常有意義的,可以在所有的內部網絡中使用,是可重用的;也正是有了這部分地址,借助NAT技術,使得當前的IPv4網絡即便地址空間已經被分配殆盡,整個網絡仍能夠正常運行。
子網劃分
子網劃分是在已有的ABC類IP子網的基礎上區分出范圍更小的子網。為了劃分,將主機號的高位單獨拿出來作為子網號,于是IP地址由網絡號、子網號和主機號構成。例如,在公司中,可能使用某個固定NetID的子網作為公司內部網絡,公司為了區分不同的部門,為每個部門分配一個SubID,這樣每個部門就是一個單獨子網。
為了確定一個IP地址是否被劃分了子網,以及用多少位來劃分子網,引入了子網掩碼。子網掩碼的取值就是NetID和SubID位都取1,HostID位全取0。例如:
- A網的默認子網掩碼為:255.0.0.0
- B網的默認子網掩碼為:255.255.0.0
- C網的默認子網掩碼為:255.255.255.0
借用HostID高位部分的3比特來劃分子網的C網的子網掩碼為:255.255.225.224;一共可以劃分出8個子網,每個子網的地址數有32個,如192.168.0.32~192.168.0.63就表示SubID=1的子網地址范圍,而192.168.0.32代表子網本身,192.168.0.63是該子網廣播地址,所以有效可分配主機地址數只有30個。因此,經過子網劃分后,可分配的地址數會減少。
經過子網劃分以后,路由器通過將IP分組的目的IP地址和子網掩碼按位與運算,就可以提取出子網地址,從而確定應該將IP分組轉發到哪個子網中去。例如,目的IP地址為172.32.1.112,子網掩碼為255.255.254.0,那么子網地址應該為172.32.0.0。
最短路徑Dijsktra算法原理(掌握)
- N’:代表閉集合,集合中的節點都已找到最短路徑;
- D(?):節點?到u的代價;
- p(?):當前下路徑節點?的前序節點;
- 自由節點:不處于閉集合中的節點。
算法過程如下:
- 在算法一開始,初始化節點u的代價為0,其他節點的代價為∞\infin∞,閉集合為空。
- 選擇代價最小的自由節點(step=0時就是節點u),記作A,將其加入閉集合,并遍歷與其相鄰的自由節點,記作B,更新它們的代價為D(B)=min{D(B),D(A)+D(A,B)}D(B)=min\{D(B),D(A)+D(A,B)\}D(B)=min{D(B),D(A)+D(A,B)},其中D(A,B)D(A,B)D(A,B)表示節點A和B之間鏈路的代價。如果更新后代價變小了,則設置節點B的前序節點為A。
- 不斷循環執行第2步,直到該網絡中不存在自由節點。
void Graph::dijkstra(Vertex s)
{//初始化頂點信息for each Vertex v {v.known = false;v.dist = INFINITY;v.path = 0;}//起點s的dist設為0s.dist = 0;//循環執行第3步for(; ;){//從所有頂點中找到dist最小的并且known為false的頂點vVertex v = unknown smallest distance vertex;//如果沒有找到滿足條件的v,則退出算法(此時所有頂點已經全部確定了)if(v == NOT_A_VERTEX)break;//將該頂點v的known置為truev.known = true;//更新與頂點v相鄰的所有其它known為false的頂點w的dist和path的值for each Vertex w adjacent to v {if(!w.known) {//更新w.distif(v.dist+distance(v,w) < w.dist) {w.dist = v.dist + distance(v,w);w.path = v;} } } }
}
傳輸層的兩種主要協議(TCP/UDP)
兩者區別:
連接
- TCP是面向連接的傳輸層協議,傳輸數據之前必須先建立連接
- UDP無連接
服務對象
- TCP是點對點的兩點間服務,一條TCP連接只能有兩個端點
- UDP支持一對多,多對多,一對多,多對一的交互通信
可靠性
- TCP是可靠交付:無差錯,不丟失,不重復,按序到達
- UDP是盡最大努力交付,不保證可靠交付
擁塞控制,流量控制
- TCP有擁塞控制和流量控制保證數據傳輸的安全性
- UDP沒有擁塞控制,網絡擁塞不會影響源主機的發送效率
報文長度
- TCP是動態報文長度,即TCP報文長度是根據接收方的窗口大小和當前的網絡擁塞情況決定的
- UDP面向報文,不合并,不拆分,保留上面傳下來的報文邊界
首部開銷
- TCP首部開銷大,20個字節
- UDP首部開銷小,8字節(源端口,目的端口,數據長度,校驗和)
適用場景
- TCP是可靠的,但是傳輸速度慢。數據完整性比通信實時性重要則使用TCP(如文件傳輸,重要狀態更新)
- UDP不可靠,傳輸速度快。通信實時性比數據完整性重要則使用UDP(如s視頻傳輸,實時通信)
傳輸層的端到端通信編址方式
每種應用層協議或應用程序都具有與傳輸層唯一連接的端口,并且使用唯一的端口號將這些端口區分開來。
端口的作用就是讓應用層的各種應用進程都能將其數據通過端口向下交付給傳輸層,以及讓傳輸層知道應當將其報文段中的數據向上通過端口交付給應用層相應的進程。
Windows常用的一些網絡命令(略)
各種常用網絡協議所處的層次結構
TCP建立連接與釋放連接的三次握手過程
三次握手
- 客戶端發送SYN段,段中標志位SYN置1,并攜帶客戶機隨機選擇的一個初始序列號seq=J,SYN段不包含數據內容。
- 服務器收到SYN段,回應SYNACK報文段,段中標志位SYN和ACK都置1,ack=J+1,隨機產生序列號seq=K。同時,服務器為該連接分配資源(緩存)。
- 客戶端收到SYNACK后,回應ACK報文段,段中標志位ACK置1,ack=K+1。當服務器收到該ACK報文段時,連接便建立成功。
之所以采用三次握手,而不是二次握手是有原因的:
- 在第二次握手時,服務器攜帶的序列號需要被客戶機正確接收,因此客戶端有必要回應通知服務器結果;
- 假設當客戶機發送了SYN段后,該段由于網絡擁塞在某個節點長期滯留,然后客戶端重傳SYN段并最終和服務端建立了連接,在該連接關閉之后,最初的SYN段才到達,在二次握手機制下,服務器會認為這是新的一次連接請求,于是回應ACK,并一直等待客戶機發送數據從而造成資源浪費。
此外,服務器在第二次握手期間就為連接分配了資源,當達到超時時間還未進行第三次握手,服務器就會釋放資源。在這個過程中,存在安全隱患——攻擊者可以利用上萬臺客戶機同時向服務器發送TCP請求連接但是都不進行第三次握手,就會導致服務器資源的大量浪費(這是一種著名的網絡攻擊手段)。
四次揮手
- 客戶端向服務器發送FIN段;
- 服務器收到FIN段,回應ACK,并發送FIN段;
- 客戶端收到FIN,回復ACK,并進入固定時間的等待,如果再次收到FIN,則重新發送ACK;
- 服務器收到ACK,服務器方的連接關閉;等到客戶端等待時間過完,客戶端方的連接也關閉;
小結
客戶端和服務端連接建立和關閉過程的狀態轉換如下圖所示。