最近找工做,整理計算機網絡的知識點以下,共計26個點。如今分三部分貼上來,這是第一部分。php
第二部分:計算機網絡知識點複習(二)html
第三部分:計算機網絡知識點複習(三)算法
"交換"(switching)的含義就是轉接——把一條電話線轉接到另外一條電話線,使它們連通起來。 數據庫
計算機數據具備突發性,電路交換傳送計算機數據效率低。在發送端,先把較長的報文劃分紅較短的、固定長度的數據段。分組交換網以"分組"做爲數據傳輸單元。依次把各分組發送到接收端。 緩存
每個分組的首部都含有地址等控制信息。分組交換網中的結點交換機根據收到的分組的首部中的地址信息,把分組轉發到下一個結點交換機。用這樣的存儲轉發方式,分組就能到達最終目的地。最終在接收端把收到的數據恢復成爲原來的報文。 服務器
OSI(Open System Interconnection),即開放式系統互聯參考模型。 網絡
OSI有7層,TCP/IP有四層(物理層與數據鏈路層統稱網絡接口層)。 less
IP over everything, everything over IP. 分佈式
數據鏈路層的協議不少(還有PPP協議),MAC只是以太網(使用CSMA/CD)協議的下的地址信息。 函數
MAC(Medium Access Control)即介質訪問控制。PPP(Point to Point Protocol)即點對點協議。
MAC地址是燒錄在網卡里的,也叫硬件地址,物理地址,長度6字節。
ARP(Address Resolution Protocol)協議,在IP層工做,ARP與RARP(Reverse ARP)的主要工做以下。另外RARP協議的功能如今通常被DHCP所取代。
ARP的基本工做原理見上圖。每一個主機都設有一個ARP高速緩存(ARP cache),裏面有所在局域網上的各主機和路由器的IP地址到硬件地址的映射表。當主機A欲向本局域網上的某個主機B發送IP數據報時,就先在其ARP高速緩存中查看有無主機B的IP地址。若有就可查出其對應的硬件地址,再將此硬件地址寫入MAC幀,而後經過局域網將該MAC幀發往目的硬件地址。若是沒有就廣播發送ARP請求分組,等待主機B向A發送ARP響應分組以獲得主機B的MAC地址,並把此映射關係寫入緩存。
CRC = Cyclical Redundancy Check FCS = Frame Check Sequence
運算規則 異或 1 XOR 1=0,0 XOR 0=0,1 XOR 0=1,0 XOR 1=1 相同爲0 不一樣爲1。
發送端在待發送數據後面再添加供差錯檢測用的n位冗餘碼一塊兒發送。
接收端對收到的每一幀進行 CRC 檢驗。
(1) 若得出的餘數 R = 0,則斷定這個幀沒有差錯,就接受(accept)。
(2) 若餘數 R ¹ 0,則斷定這個幀有差錯,就丟棄。
但這種檢測方法並不能肯定到底是哪個或哪幾個比特出現了差錯。只要通過嚴格的挑選,並使用位數足夠多的除數 P,那麼出現檢測不到的差錯的機率就很小很小。
CRC-16 P = X16+X15+X2+1
CRC-CCITT P = X16+X12 +X5+1
CRC-32 P = X32+X26+X23+X22+X16+X12+X11+X10+ X8+X7+X5+X4+X2+X+1
僅用循環冗餘檢驗 CRC 差錯檢測技術只能作到無差錯接受,不能作到可靠傳輸。
"無差錯接受"是指:"凡是接受的幀(即不包括丟棄的幀),咱們都能以很是接近於 1 的機率認爲這些幀在傳輸過程當中沒有產生差錯"。可是,要作到"可靠傳輸"(即發送什麼就收到什麼)就必須再加上確認和重傳機制。
字節填充(byte stuffing)或字符填充(character stuffing)
發送端的數據鏈路層在數據中出現控制字符"SOH"或"EOT"的前面插入一個轉義字符"ESC"。接收端的數據鏈路層在將數據送往網絡層以前刪除插入的轉義字符。
若是轉義字符也出現數據當中,那麼應在轉義字符前面插入一個轉義字符。當接收端收到連續的兩個轉義字符時,就刪除其中前面的一個。PPP協議有本身的字符填充方法。
零比特填充
PPP 協議用在SONET/SDH鏈路時,是使用同步傳輸(一連串的比特連續傳送)。這時 PPP 協議採用零比特填充方法來實現透明傳輸。
在發送端,只要發現有5個連續1,則當即填入一個0。
接收端對幀中的比特流進行掃描。每當發現5個連續1時,就把這 5個連續1後的一個0刪除。
物理層 中繼器Repeater 集線器Hub
數據鏈路層 網橋Bridge 交換機Switch(即多端口網橋)
網絡層 路由器Router
應用層 網關Gateway
IP(Internet Protocol)協議,即互聯網通訊協議。除非特別指出,通常狀況下IP指的就是IPv4。
MTU(Maximum Transmission Unit)指的是最大傳輸單元,通常與數據鏈路層的協議有關。常見的MTU值有1500,576。
IPv4是一種無鏈接的協議,在IETF(Internet Engineering Task Force) 互聯網工程任務組於1981年9月發佈的RFC 791中被說明。其中RFC(Request For Comment) 徵求修正意見書,是一系列以編號排定的文件,文件收集了與互聯網有關的信息。
IP頭部的格式以下圖:
版本 IP報文首部的第一個字段是4位版本字段。對IPv4來講,這個字段的值是4。
首部長度(IHL)第二個字段是4位首部長度,說明首部有多少32位字長。因爲IPv4首部可能包含數目不定的選項,這個字段也用來肯定數據的偏移量。這個字段的最小值是5,最大值是15。
區分服務 佔 8 位,用來得到更好的服務只有在使用區分服務(DiffServ)時,這個字段才起做用。在通常的狀況下都不使用這個字段。
全長 這個16位字段定義了IP報文的總長,包含首部和數據,單位爲字節。這個字段的最小值是20(20字節首部+0字節數據),最大值是65,535。全部主機都必須支持最小576字節的報文(RFC 791說明),但大多數現代主機支持更大的報文。有時候子網會限制報文的大小,這時報文就必須被分片。
標識符 這個字段主要被用來惟一地標識一個報文的全部分片。
標誌 這個3位字段用於控制和識別分片,其中:
位0:保留,必須爲0;位1:禁止分片(DF);位2:更多分片(MF)。
若是DF標誌被設置但路由要求必須分片報文,此報文會被丟棄。當一個報文被分片,除了最後一片外的全部分片都設置MF標誌。不被分片的報文不設置MF標誌:它是它本身的最後一片。
分片偏移 這個13位字段指明瞭每一個分片相對於原始報文開頭的偏移量,以8字節做單位。
存活時間(TTL) 這個8位字段避免報文在互聯網中永遠存在(例如陷入路由環路)。存活時間以秒爲單位,但小於一秒的時間均向上取整到一秒。在現實中,這實際上成了一個跳數計數器。報文通過的每一個路由器都將此字段減一,當此字段等於0時,報文再也不向下一跳傳送並被丟棄。
協議 這個字段定義了該報文數據區使用的協議。IANA維護着一份協議列表(最初由RFC 790定義)。
協議字段值 協議名 縮寫 英文全稱
1 互聯網控制消息協議 ICMP Internet Control Message Protocol
2 互聯網組管理協議 IGMP Internet Group Management Protocol
6 傳輸控制協議 TCP Transmission Control Protocol
17 用戶數據報協議 UDP User Datagram Protocol
41 IPv6封裝
89 開放式最短路徑優先 OSPF Open Shortest Path First
首部檢驗和 這個16位檢驗和字段用於對首部查錯。在每一跳中計算出的首部檢驗和必須與此字段進行比對,若是不一致則此報文被丟棄。須要注意的是,數據區的錯誤留待上層協議處理,UDP和TCP的頭部都有檢驗和字段。由於生存時間字段在每一跳都會變化,意味着首部檢驗和字段會在每一跳後改變。
源地址 一個IPv4地址由四個字節共32位構成。注意,由於NAT(Network Address Translation)網絡地址轉換的存在,這個地址並不老是報文的真實發送端,由NAT設備發出的報文會被回覆至NAT設備,並由它被翻譯爲真實的地址。
目的地址 與源地址格式相同,但指出報文的接收端。
可選字段與填充 可選字段長度可變,從1字節到40字節不等,但不管長度是多少,最後都要用全0的填充字段補齊,使這兩個字段的長度之和爲4字節的整數倍。
每一類地址都由兩個固定長度的字段組成,其中一個字段是網絡號net-id,它標誌主機所鏈接到的網絡,而另外一個字段則是主機號host-id,它標誌主機。IP地址的定義爲{<網絡號>, <主機號>}。
IP地址按照傳統,分爲ABC三類,A類地址以0開頭,B類以10開頭,C類以110開頭。
類別 最大網絡數 第一個可用網絡號 最後一個可用網絡號 每一個網絡最大主機數
A 126 (27 - 2) 1 126 16,777,214
B 16,383(214 - 1) 128.1 191.255 65,534
C 2,097,151 (221 - 1) 192.0.1 223.255.255 254
子網掩碼(subnet mask),由從頭開始的連續的1組成,用來區分IP地址中的網絡號和子網號。
CIDR(Classless Inter Domain Routing, 無分類域間路由),CIDR 消除了傳統的各種地址以及劃分子網的概念,使用各類長度的網絡前綴(network-prefix)來代替分類地址中的網絡號和子網號。
CIDR的斜線記法即在IP地址後面加上一個斜線"/",而後寫上網絡前綴所佔的位數,這個數值對應於子網掩碼中從最前部連續出現的1的個數。
使用CIDR的好處有:
路由聚合(Route Aggregation):是讓路由選擇協議可以用一個地址通告衆多網絡,旨在縮小路由器中路由選擇表的規模,並縮短對路由選擇表進行分析以找出前往遠程網絡的路徑所需的時間。
最長前綴匹配(longest-prefix matching):應當從匹配結果中選擇具備最長網絡前綴的路由,網絡前綴越長,其地址塊就越小,於是路由就越具體(more specific) 。
二叉樹查找路由表:由於使用CIDR能使路由表條目減小,能夠構造二叉樹進一步加快查找速度。
目的地址Destination 下一跳地址Next hop(Gateway) 子網掩碼Mask 距離Hop count
RIP協議讓互聯網中的全部路由器都和本身的相鄰路由器不斷交換路由信息,並不斷更新其路由表,使得從每個路由器到每個目的網絡的路由都是最短的(即跳數最少)。要點:1.僅和相鄰路由器交換信息。交換的信息是本路由器所知道的所有信息,即本身的路由表。3.固定時間間隔即交換一次。
常見的有關路由表問題的習題:
1、某路由器的路由表以下所示。若是它收到一個目的地址爲192.168.10.23的IP數據報,那麼它爲該數據報選擇的下一路由器地址爲
A.192.168.10.1 B.192.168.2.66 C.192.168.1.35 D.直接投遞
目的網絡 |
下一跳 |
192.168.1.0 |
直接投遞 |
192.168.2.0 |
直接投遞 |
192.168.3.0 |
192.168.1.35 |
0.0.0.0 |
192.168.2.66 |
2、考慮某路由器具備下列路由表項:
目的網絡 |
下一跳 |
142.150.64.0/24 |
A |
142.150.71.128/28 |
B |
142.150.71.128/29 |
C |
142.150.71.128/30 |
D |
(1)假設路由器接收到一個目的地址爲142.150.71.132的IP分組,請肯定下一跳
(2)上面的路由器表中增長一條路由表項,該路由表項使以142.150.71.132爲目的的地址IP分組選擇"A"做爲下一跳,不影響其餘目的地址的IP分組轉發。
(3)在上面的路由表中增長一條路由表項,使全部目的地址與該路由表中任何路由表項都不匹配的IP分組被轉發到下一跳"E"。
3、假定網絡中的路由器B的路由表有以下的項目: 如今B收到從C和E發來的路由信息:
目的網絡 |
距離 |
下一跳路由器 |
N1 |
6 |
E |
N2 |
5 |
C |
N3 |
9 |
C |
N4 |
4 |
E |
N6 |
6 |
C |
N8 |
5 |
E |
N9 |
6 |
C |
試求出路由器B更新後的路由表。
其餘常見內部路由選擇協議還有OSPF(Open Shortest Path First) 開放式最短路徑優先。其餘常見外部路由選擇協議有BGP(Border Gateway Protocol)邊界網關協議。
控制報文協議(ICMP, Internet Control Message Protocol)是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡自己的消息。這些控制消息雖然並不傳輸用戶數據,可是對於用戶數據的傳遞起着重要的做用。
PING (Packet Inter Net Groper)發送一個ICMP回聲請求給目的地,並報告是否收到所但願的應答。
命令格式ping [-t] [-n count] [-a] [-l length] [-f] [-i ttl] [-w timeout] [-4|6] destination-list
-t 不停的ping對方主機,直到你按下Ctrl-C -n 發送count個Echo數據包
-a 解析IP地址的主機名 -l 定義Echo數據包的大小
-f 在數據包中發送"不要分段"標誌 -i 指定TTL值
-w 指定超時間隔,單位爲毫秒 -[4|6] 強制使用IPv4或IPv6
traceroute能夠肯定至目的網絡的路由。經過向目的主機發送TTL爲1的ICMP報文而且在隨後每次的ICMP報文中將TTL值加1直至報文到達目的網絡時或達到最大跳數限制時中止。到目的網絡路徑上的每一個路由器都要在轉發該ICMP報文前將其TTL值減1,所以TTL是有效的跳轉計數。當報文的 TTL值減小到0時,該路由器向源主機發回ICMP超時信息,便可得知到目的網絡的路徑通過此路由器。
注意,有些路由器會"安靜"地丟棄TTL過時的報文,此類路由器不會給源主機返回信息。
在traceroute結束以前,到目的網絡的路由可能會有改變,traceroute沒法提供此類信息。
D類地址不分網絡地址和主機地址,它的第1個字節的前四位固定爲1110。D類地址用於多播。
E類地址也不分網絡地址和主機地址,它的第1個字節的取值範圍是11110 - 11111110(240-254)。
E類地址保留,僅做爲搜索、Internet的實驗和開發之用。
IP多播地址只能用於目的地址,而不能用於源地址。須要使用硬件進行多播。
D 類 IP 地址與以太網多播地址的映射關係
因特網組管理協議(IGMP, Internet Group Management Protocol)是因特網協議家族中的一個組播協議,用於IP主機向任一個直接相鄰的路由器報告他們的組成員狀況。它規定了處於不一樣網段的主機如何進行多播通訊,其前提條件是路由器自己要支持多播。
TCP與UDP都是傳輸層協議,位於OSI的第四層。
傳輸控制協議(TCP,Transmission Control Protocol)是一種面向鏈接(鏈接導向)的、可靠的、基於IP的傳輸層協議,由IETF的RFC 793說明。每一條 TCP 鏈接只能有兩個端點(endpoint),只能是點對點的(一對一)。TCP提供全雙工通訊,鏈接是面向字節流的。
TCP爲了保證報文傳輸的可靠,就給每一個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。而後接收端實體對已成功收到的字節發回一個相應的確認(ACK);若是發送端實體在合理的往返時延(RTT)內未收到確認,那麼對應的數據將會被重傳。
在數據正確性與合法性上,TCP用一個校驗和函數來檢驗數據是否有錯誤。
在保證可靠性上,採用超時重傳和捎帶確認機制。
在流量控制上,採用滑動窗口協議,協議中規定,對於窗口內未經確認的分組須要重傳。
在擁塞控制上,採用擁塞控制算法(也稱AIMD算法)。主要包括三個主要部分:1)加性增、乘性減;2)慢啓動;3)對超時事件作出反應。
用戶數據報協議(UDP, User Datagram Protocol)是一種無鏈接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務,由IETF的RFC 768說明。
UDP協議基本上是IP協議與上層協議的接口。UDP主要用於不要求分組順序到達的傳輸中,分組傳輸順序的檢查與排序能夠由應用層完成,於是具備資源消耗小,處理速度快的優勢,因此一般在音頻、視頻和普通數據在傳送時使用。
UDP由IETF的RFC 768描述。
首部字段有 8 個字節,由 4 個字段組成,每一個字段都是兩個字節。在計算檢驗和時,臨時把"僞首部"和 UDP 用戶數據報鏈接在一塊兒。僞首部僅僅是爲了計算檢驗和。
使用UDP協議的常見應用層協議:
端口號 協議名稱 縮寫 英文全稱
53 域名系統 DNS Domain Name System
67, 68 動態主機配置協議 DHCP Dynamic Host Configuration Protocol
69 簡單文件傳輸協議 TFTP Trivial File Transfer Protocol
161, 162 簡單網絡管理協議 SNMP Simple Network Management Protocol
未指定 網絡文件系統 NFS Network File System
14.DNS的概念,用途,DNS查詢的實現算法。
域名系統(DNS,Domain Name System),因特網上做爲域名和IP地址相互映射的一個分佈式數據庫,可以使用戶更方便的訪問互聯網,而不用去記住可以被機器直接讀取的IP數串。經過主機名,最終獲得該主機名對應的IP地址的過程叫作域名解析。DNS協議運行在UDP協議之上(當請求大於512字節時使用TCP),使用端口號53。由RFC 2181對DNS進行說明,RFC 2136對動態更新進行說明,RFC 2308對DNS反向查詢進行說明。
因特網採用了層次樹狀結構的命名方法。任何一個鏈接在因特網上的主機或路由器,都有一個惟一的層次結構的名字,即域名。域名的結構由標號序列組成,各標號分別表明不一樣級別的域名。各標號之間用點隔開:… . 三級域名 . 二級域名 . 頂級域名
根域名服務器是最高層次的、最重要的域名服務器。全部的根域名服務器都知道全部的頂級域名服務器的域名和IP地址。不論是哪個本地域名服務器,若要對因特網上任何一個域名進行解析,只要本身沒法解析,就首先求助於根域名服務器。根域名服務器在因特網上共有13套裝置(不是13個機器)使用13個不一樣IP地址,它們的名字是從a一直到m的前13個字母,域名是a.rootservers.net等。
主機向域名服務器的查詢通常都是採用遞歸查詢。若是主機所詢問的本地域名服務器不知道被查詢域名的 IP 地址,那麼本地域名服務器就以DNS客戶的身份,向其餘根域名服務器繼續發出查詢請求報文。
本地域名服務器向根域名服務器的查詢一般是採用迭代查詢。當根域名服務器收到本地域名服務器的迭代查詢請求報文時,要麼給出所要查詢的IP地址,要麼告訴本地域名服務器:"你下一步應當向哪個域名服務器進行查詢"。而後讓本地域名服務器進行後續的查詢。
迭代查詢 遞歸查詢
第二部分:計算機網絡知識點複習(二)
第三部分:計算機網絡知識點複習(三)