計算機基礎知識

1、TCP協議和UDP協議

UDP是面向無連接的,不可靠的數據報服務;

TCP是面向連接的,可靠的字節流服務。

HTTP協議是建立在TCP協議之上的一種應用

2、HTTP與HTTPS協議

HTTP連接是一種“短連接”,要保持客戶端程序的在線狀態,需要不斷地向服務器發起連接請求

HTTP協議的不安全性:

HTTP(超級文本傳輸協議)HTTP協議以明文方式發送內容,不提供任何方式的數據加密,如果攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文,就可以直接讀懂其中的信息,因此,HTTP協議不適合傳輸一些敏感信息,比如:信用卡號、密碼等支付信息。

HTTPS協議的初衷:

(安全套接字層超文本傳輸協議)HTTPS,為了數據傳輸的安全,HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證服務器的身份,併為瀏覽器和服務器之間的通信加密。

HTTPS協議的主要作用可以分為兩種:一種是建立一個信息安全通道,來保證數據傳輸的安全;另一種就是確認網站的真實性。

HTTPS和HTTP的區別主要如下:

1)https協議需要申請證書,一般免費證書較少,因而需要一定費用。

2)http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。

3)http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,後者是443。

4)http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

HTTP使用TCP三次握手建立連接,客戶端和服務器需要交換3個包,而HTTPS需要12個包

3、TCP 的三次握手和四次揮手

TCP報文格式圖:

計算機基礎知識

(1)序號:Seq序號,佔32位,用來標識從TCP源端向目的端發送的字節流,發起方發送數據時對此進行標記。

(2)確認序號:Ack序號,佔32位,只有ACK標誌位為1時,確認序號字段才有效,Ack=Seq+1。

(3)標誌位:共6個,即URG、ACK、PSH、RST、SYN、FIN等,具體含義如下:

(A)URG:緊急指針(urgent pointer)有效。

(B)ACK:確認序號有效。

(C)PSH:接收方應該儘快將這個報文交給應用層(傳送)。

(D)RST:重置連接。

(E)SYN:發起一個新連接。

(F)FIN:釋放一個連接。

為什麼需要“三次握手”(客戶端和服務端總共發送3個包以確認連接的建立):為了防止已失效的連接請求報文段突然又傳送到了服務端,防止server端一直等待,浪費資源。

計算機基礎知識

(1)第一次握手:Client將標誌位SYN置為1,隨機產生一個值seq=J,並將該數據包發送給Server,Client進入SYN_SENT狀態,等待Server確認。

(2)第二次握手:Server收到數據包後由標誌位SYN=1知道Client請求建立連接,Server將標誌位SYN和ACK都置為1,ack (number )=J+1,隨機產生一個值seq=K,並將該數據包發送給Client以確認連接請求,Server進入SYN_RCVD狀態。

(3)第三次握手:Client收到確認後,檢查ack是否為J+1,ACK是否為1,如果正確則將標誌位ACK置為1,ack=K+1,並將該數據包發送給Server,Server檢查ack是否為K+1,ACK是否為1,如果正確則連接建立成功,Client和Server進入ESTABLISHED狀態,完成三次握手,隨後Client與Server之間可以開始傳輸數據了。

為什麼需要“四次揮手”:

計算機基礎知識

由於TCP連接是全雙工的,因此,每個方向都必須要單獨進行關閉,這一原則是當一方完成數據發送任務後,發送一個FIN來終止這一方向的連接,收到一個FIN只是意味著這一方向上沒有數據流動了,即不會再收到數據了,但是在這個TCP連接上仍然能夠發送數據,直到這一方向也發送了FIN。首先進行關閉的一方將執行主動關閉,而另一方則執行被動關閉

(1)第一次揮手:Client發送一個FIN,用來關閉Client到Server的數據傳送,Client進入FIN_WAIT_1狀態。

(2)第二次揮手:Server收到FIN後,發送一個ACK給Client,確認序號為收到序號+1(與SYN相同,一個FIN佔用一個序號),Server進入CLOSE_WAIT狀態。

(3)第三次揮手:Server發送一個FIN,用來關閉Server到Client的數據傳送,Server進入LAST_ACK狀態。

(4)第四次揮手:Client收到FIN後,Client進入TIME_WAIT狀態,接著發送一個ACK給Server,確認序號為收到序號+1,Server進入CLOSED狀態,完成四次揮手。

為什麼建立連接是三次握手,而關閉連接卻是四次揮手:

這是因為服務端在LISTEN狀態下,收到建立連接請求的SYN報文後,把ACK和SYN放在一個報文裡發送給客戶端。而關閉連接時,當收到對方的FIN報文時,僅僅表示對方不再發送數據了但是還能接收數據,己方也未必全部數據都發送給對方了,所以己方可以立即close,也可以發送一些數據給對方後,再發送FIN報文給對方來表示同意現在關閉連接,因此,己方ACK和FIN一般都會分開發送。

TCP的三次握手過程?為什麼會採用三次握手,若採用二次握手可以嗎?

建立連接的過程是利用客戶服務器模式,假設主機A為客戶端,主機B為服務器端。

(1)TCP的三次握手過程:主機A向B發送連接請求;主機B對收到的主機A的報文段進行確認;主機A再次對主機B的確認進行確認。

(2)採用三次握手是為了防止失效的連接請求報文段突然又傳送到主機B,因而產生錯誤。失效的連接請求報文段是指:主機A發出的連接請求沒有收到主機B的確認,於是經過一段時間後,主機A又重新向主機B發送連接請求,且建立成功,順序完成數據傳輸。考慮這樣一種特殊情況,主機A第一次發送的連接請求並沒有丟失,而是因為網絡節點導致延遲達到主機B,主機B以為是主機A又發起的新連接,於是主機B同意連接,並向主機A發回確認,但是此時主機A根本不會理會,主機B就一直在等待主機A發送數據,導致主機B的資源浪費。

(3)採用兩次握手不行,原因就是上面說的實效的連接請求的特殊情況。

4、TCP的可靠性

TCP的可靠性是通過發送序號(Seq)和確認序號(ACK)來實現的。ack=seq+1;

5、2XX、3XX、4XX、5XX分別代表的含義,以及常見的

簡單版 [

1XX-信息類(Information),表示收到Web瀏覽器請求,正在進一步的處理中

2XX-成功類(Successful),表示用戶請求被正確接收,理解和處理例如:200 OK

3XX-重定向類(Redirection),表示請求沒有成功,客戶必須採取進一步的動作。

4XX-客戶端錯誤(Client Error),表示客戶端提交的請求有錯誤 例如:404意味著請求中所引用的文檔不存在。

5XX-服務器錯誤(Server Error)表示服務器不能完成對請求的處理:如 500

100 Continue 繼續,一般在發送post請求時,已發送了http header之後服務端將返回此信息,表示確認,之後發送具體參數信息

200 OK 正常返回信息 201 Created 請求成功並且服務器創建了新的資源

202 Accepted 服務器已接受請求,但尚未處理

301 Moved Permanently 請求的網頁已永久移動到新位置。

302 Found 臨時性重定向。還是請求原地址,但是會被轉移到其他的url處理

303 See Other 臨時性重定向,需要發送新的URL。

304 Not Modified 自從上次請求後,請求的網頁未修改過。

400 Bad Request 服務器無法理解請求的格式,客戶端不應當嘗試再次使用相同的內容發起請求。

401 Unauthorized 請求未授權。

403 Forbidden 禁止訪問。

404 Not Found 找不到如何與 URI 相匹配的資源。

500 Internal Server Error 最常見的服務器端錯誤。 503 Service Unavailable 服務器端暫時無法處理請求(可能是過載或維護)。

]

完整版 :

1**(信息類):表示接收到請求並且繼續處理

100——客戶必須繼續發出請求

101——客戶要求服務器根據請求轉換HTTP協議版本

2**(響應成功):表示動作被成功接收、理解和接受

200——表明該請求被成功地完成,所請求的資源發送回客戶端

201——提示知道新文件的URL

202——接受和處理、但處理未完成

203——返回信息不確定或不完整

204——請求收到,但返回信息為空

205——服務器完成了請求,用戶代理必須復位當前已經瀏覽過的文件

206——服務器已經完成了部分用戶的GET請求

3**(重定向類):為了完成指定的動作,必須接受進一步處理

300——請求的資源可在多處得到

301——本網頁被永久性轉移到另一個URL

302——請求的網頁被轉移到一個新的地址,但客戶訪問仍繼續通過原始URL地址,重定向,新的URL會在response中的Location中返回,瀏覽器將會使用新的URL發出新的Request。

303——建議客戶訪問其他URL或訪問方式

304——自從上次請求後,請求的網頁未修改過,服務器返回此響應時,不會返回網頁內容,代表上次的文檔已經被緩存了,還可以繼續使用

305——請求的資源必須從服務器指定的地址得到

306——前一版本HTTP中使用的代碼,現行版本中不再使用

307——申明請求的資源臨時性刪除

4**(客戶端錯誤類):請求包含錯誤語法或不能正確執行

400——客戶端請求有語法錯誤,不能被服務器所理解

401——請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用

HTTP 401.1 - 未授權:登錄失敗

HTTP 401.2 - 未授權:服務器配置問題導致登錄失敗

HTTP 401.3 - ACL 禁止訪問資源

HTTP 401.4 - 未授權:授權被篩選器拒絕

HTTP 401.5 - 未授權:ISAPI 或 CGI 授權失敗

402——保留有效ChargeTo頭響應

403——禁止訪問,服務器收到請求,但是拒絕提供服務

HTTP 403.1 禁止訪問:禁止可執行訪問

HTTP 403.2 - 禁止訪問:禁止讀訪問

HTTP 403.3 - 禁止訪問:禁止寫訪問

HTTP 403.4 - 禁止訪問:要求 SSL

HTTP 403.5 - 禁止訪問:要求 SSL 128

HTTP 403.6 - 禁止訪問:IP 地址被拒絕

HTTP 403.7 - 禁止訪問:要求客戶證書

HTTP 403.8 - 禁止訪問:禁止站點訪問

HTTP 403.9 - 禁止訪問:連接的用戶過多

HTTP 403.10 - 禁止訪問:配置無效

HTTP 403.11 - 禁止訪問:密碼更改

HTTP 403.12 - 禁止訪問:映射器拒絕訪問

HTTP 403.13 - 禁止訪問:客戶證書已被吊銷

HTTP 403.15 - 禁止訪問:客戶訪問許可過多

HTTP 403.16 - 禁止訪問:客戶證書不可信或者無效

HTTP 403.17 - 禁止訪問:客戶證書已經到期或者尚未生效

404——一個404錯誤表明可連接服務器,但服務器無法取得所請求的網頁,請求資源不存在。eg:輸入了錯誤的URL

405——用戶在Request-Line字段定義的方法不允許

406——根據用戶發送的Accept拖,請求資源不可訪問

407——類似401,用戶必須首先在代理服務器上得到授權

408——客戶端沒有在用戶指定的餓時間內完成請求

409——對當前資源狀態,請求不能完成

410——服務器上不再有此資源且無進一步的參考地址

411——服務器拒絕用戶定義的Content-Length屬性請求

412——一個或多個請求頭字段在當前請求中錯誤

413——請求的資源大於服務器允許的大小

414——請求的資源URL長於服務器允許的長度

415——請求資源不支持請求項目格式

416——請求中包含Range請求頭字段,在當前請求資源範圍內沒有range指示值,請求也不包含If-Range請求頭字段

417——服務器不滿足請求Expect頭字段指定的期望值,如果是代理服務器,可能是下一級服務器不能滿足請求長。 5**(服務端錯誤類):服務器不能正確執行一個正確的請求

500 - 服務器遇到錯誤,無法完成請求

HTTP 500.100 - 內部服務器錯誤 - ASP 錯誤

HTTP 500-11 服務器關閉

HTTP 500-12 應用程序重新啟動

HTTP 500-13 - 服務器太忙

HTTP 500-14 - 應用程序無效

HTTP 500-15 - 不允許請求 global.asa

501 - 未實現

502 - 網關錯誤

503:由於超載或停機維護,服務器目前無法使用,一段時間後可能恢復正常

6、Cookies和Session的主要區別

1)session保存在服務器,客戶端不知道其中的信息;cookie保存在客戶端,服務器能夠知道其中的信息。

2)session中保存的是對象,cookie中保存的是字符串。

3)session不能區分路徑,同一個用戶在訪問一個網站期間,所有的session在任何一個地方都可以訪問到。而cookie中如果設置 了路徑參數,那麼同一個網站中不同路徑下的cookie互相是訪問不到的。

4)session默認需要藉助cookie才能正常工作。如果客戶端完全禁止cookie,session,這種方法將失效。但可以URL重寫。

5 )session在用戶會話結束後就會關閉了,但cookie因為保存在客戶端,可以長期保存

6) cookie:是服務端向客戶端寫入的小的片段信息。cookie信息保存在服務器緩存區,不會在客戶端顯現。當你第一次登陸一個網站,服務器向你的機器寫得片段信息。你可以在Internet選項中找到存放cookie的文件夾。如果不刪除,cookie就一直在這個文件夾中。

7)cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙,考慮到安全應當使用session。

8)單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。

9)建議:將登陸信息等重要信息存放為SESSION,其他信息如果需要保留,可以放在COOKIE中

7、七層協議的介紹

OSI分層(7層) :物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。

TCP/IP分層(4層) :網絡接口層、網際層、運輸層、應用層。

五層協議(5層) :物理層、數據鏈路層、網絡層、運輸層、應用層。

每一層的作用如下:

物理層:激活、維持、關閉通信端點之間的機械特性、電氣特性、功能特性以及過程特性。該層為上層協議提供了一個傳輸數據的物理媒體。

數據鏈路層 :數據鏈路層在不可靠的物理介質上提供可靠的傳輸。該層的作用包括:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。

網絡層 :網絡層負責對子網間的數據包進行路由選擇。此外,網絡層還可以實現擁塞控制、網際互連等功能。

傳輸層 :第一個端到端,即主機到主機的層次。傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯控制和流量控制問題。

會話層 :會話層管理主機之間的會話進程,即負責建立、管理、終止進程之間的會話。會話層還利用在數據中插入校驗點來實現數據的同步。

表示層 :表示層對上層數據或信息進行變換以保證一個主機應用層信息可以被另一個主機的應用程序理解。表示層的數據轉換包括數據的加密、壓縮、格式轉換等。

應用層 :為操作系統或網絡應用程序提供訪問網絡服務的接口。

8、TCP/IP 中,每一層對應的協議

應用層 :FTP(文件傳送協議)、Telenet(遠程登錄協議)、DNS(域名解析協議)、SMTP(郵件傳送協議),POP3協議(郵局協議),HTTP協議。

表示層:JPEG、MPEG、ASII

會話層:NFS、SQL、NETBIOS、RPC

傳輸層:TCP、UDP、SPX

網絡層:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)

數據鏈路:PPP、FR、HDLC、VLAN、MAC (網橋,交換機)

物理層:RJ45、CLOCK、IEEE802.3 (中繼器,集線器)

每一層的作用如下:

應用層:允許訪問OSI環境的手段(應用協議數據單元APDU)(文件傳輸,電 子郵件,文件服務,虛擬終端)

表示層:對數據進行翻譯、加密和壓縮(表示協議數據單元PPDU)(數據格式化,代碼轉換,數據加密)

會話層:建立、管理和終止會話(會話協議數據單元SPDU)(解除和建立與別的接點的聯繫)

傳輸層:提供端到端的可靠報文傳遞和錯誤恢復(段Segment)(提供端對端的接口)

網絡層:負責數據包從源到宿的傳遞和網際互連(包PackeT)(對數據包選擇路由)

數據鏈路層:將比特組裝成幀和點到點的傳遞(幀Frame)(傳輸和有地址的幀和錯誤檢測功能)

物理層:通過媒介傳輸比特,確定機械及電氣規範(比特Bit)(以二進制形式在物理媒體上傳輸數據)

具體協議:

ICMP協議:因特網控制報文協議。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。

TFTP協議:是TCP/IP協議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務。

HTTP協議: 超文本傳輸協議,是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分佈式超媒體信息系統。

DHCP協議: 動態主機配置協議,是一種讓系統得以連接到網絡上,並獲取所需要的配置參數手段。

NAT協議:網絡地址轉換屬接入廣域網(WAN)技術,是一種將私有(保留)地址轉化為合法IP地址的轉換技術,

DHCP協議:一個局域網的網絡協議,使用UDP協議工作,用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員作為對所有計算機作中央管理的手段。

9、ARP協議的工作原理

完成IP地址到MAC地址的映射。

1:首先,每個主機都會在自己的ARP緩衝區中建立一個ARP列表,以表示IP地址和MAC地址之間的對應關係。

2:當源主機要發送數據時,首先檢查ARP列表中是否有對應IP地址的目的主機的MAC地址,如果有,則直接發送數據,如果沒有,就向本網段的所有主機發送ARP數據包,該數據包包括的內容有:源主機 IP地址,源主機MAC地址,目的主機的IP 地址。

3:當本網絡的所有主機收到該ARP數據包時,首先檢查數據包中的IP地址是否是自己的IP地址,如果不是,則忽略該數據包,如果是,則首先從數據包中取出源主機的IP和MAC地址寫入到ARP列表中,如果已經存在,則覆蓋,然後將自己的MAC地址寫入ARP響應包中,告訴源主機自己是它想要找的MAC地址。

4:源主機收到ARP響應包後。將目的主機的IP和MAC地址寫入ARP列表,並利用此信息發送數據。如果源主機一直沒有收到ARP響應數據包,表示ARP查詢失敗。

廣播發送ARP請求,單播發送ARP響應。

RARP協議:

RARP是逆地址解析協議,作用是完成硬件地址到IP地址的映射,主要用於無盤工作站,因為給無盤工作站配置的IP地址不能保存。工作流程:在網絡中配置一臺RARP服務器,裡面保存著IP地址和MAC地址的映射關係,當無盤工作站啟動後,就封裝一個RARP數據包,裡面有其MAC地址,然後廣播到網絡上去,當服務器收到請求包後,就查找對應的MAC地址的IP地址裝入響應報文中發回給請求者。因為需要廣播請求報文,因此RARP只能用於具有廣播能力的網絡。

10、路由設備與相關層

物理層 :中繼器(Repeater,也叫放大器),集線器。

數據鏈路層 :網橋,交換機。

網絡層 :路由器。

網關 :網絡層以上的設備。

11、常見的路由選擇協議,以及它們的區別

常見的路由選擇協議有:RIP協議、OSPF協議。 RIP協議 :底層是貝爾曼福特算法,它選擇路由的度量標準(metric)是跳數,最大跳數是15跳,如果大於15跳,它就會丟棄數據包。

OSPF協議 :底層是迪傑斯特拉算法,是鏈路狀態路由選擇協議,它選擇路由的度量標準是帶寬,延遲。

12、HTTP 協議包括哪些請求?

GET:請求讀取由URL所標誌的信息。

POST:給服務器添加信息(如註釋)。

PUT:在給定的URL下存儲一個文檔。

DELETE:刪除給定的URL所標誌的資源。

HEAD等等

13、HTTP 中, POST 與 GET 的區別

(1)Get是從服務器上獲取數據,Post是向服務器傳送數據。

(2)Get是把參數數據隊列加到提交表單的Action屬性所指向的URL中,值和表單內各個字段一一對應,在URL中科院看到。

(3)Get傳送的數據量小,不能大於2KB;post傳送的數據量較大,一般被默認為不受限制。

(4)根據HTTP規範,GET用於信息獲取,而且應該是安全的和冪等的。

I.所謂 安全的 意味著該操作用於獲取信息而非修改信息。換句話說,GET 請求一般不應產生副作用。就是說,它僅僅是獲取資源信息,就像數據庫查詢一樣,不會修改,增加數據,不會影響資源的狀態。

II. 冪等 的意味著對同一URL的多個請求應該返回同樣的結果。

14. TCP 對應的協議和 UDP 對應的協議

TCP傳輸單位稱為TCP報文段,UDP傳輸單位稱為用戶數據報。

TCP注重數據安全性,UDP數據傳輸快,因為不需要連接等待,少了許多操作,但是其安全性卻一般。

TCP對應的協議和UDP對應的協議

TCP對應的協議:

(1) FTP :定義了文件傳輸協議,使用21端口。常說某某計算機開了FTP服務便是啟動了文件傳輸服務。下載文件,上傳主頁,都要用到FTP服務。

(2) Telnet :它是一種用於遠程登陸的端口,用戶可以以自己的身份遠程連接到計算機上,通過這種端口可以提供一種基於DOS模式下的通信服務。如以前的BBS是-純字符界面的,支持BBS的服務器將23端口打開,對外提供服務。

(3) SMTP :定義了簡單郵件傳送協議,現在很多郵件服務器都用的是這個協議,用於發送郵件。如常見的免費郵件服務中用的就是這個郵件服務端口,所以在電子郵件設置-中常看到有這麼SMTP端口設置這個欄,服務器開放的是25號端口。

(4) POP3 :它是和SMTP對應,POP3用於接收郵件。通常情況下,POP3協議所用的是110端口。也是說,只要你有相應的使用POP3協議的程序(例如Fo-xmail或Outlook),就可以不以Web方式登陸進郵箱界面,直接用郵件程序就可以收到郵件(如是163郵箱就沒有必要先進入網易網站,再進入自己的郵-箱來收信)。

(5)HTTP協議: 是從 Web 服務器傳輸超文本到本地瀏覽器的傳送協議。

UDP對應的協議:

(1) DNS :用於域名解析服務,將域名地址轉換為IP地址。DNS用的是53號端口。

(2) SNMP :簡單網絡管理協議,使用161號端口,是用來管理網絡設備的。由於網絡設備很多,無連接的服務就體現出其優勢。

(3) TFTP (Trival File Transfer Protocal),簡單文件傳輸協議,該協議在熟知端口69上使用UDP服務。

IP地址的分類:

A類地址:以0開頭, 第一個字節範圍:0~126(1.0.0.0 - 126.255.255.255);

B類地址:以10開頭, 第一個字節範圍:128~191(128.0.0.0 - 191.255.255.255);

C類地址:以110開頭, 第一個字節範圍:192~223(192.0.0.0 - 223.255.255.255);

10.0.0.0—10.255.255.255, 172.16.0.0—172.31.255.255, 192.168.0.0—192.168.255.255。(Internet上保留地址用於內部)IP地址與子網掩碼相與得到網絡號

15、NAT 協議、 DHCP 協議、 DNS 協議的作用

NAT協議 :網絡地址轉換(NAT,Network AddressTranslation)屬接入廣域網(WAN)技術,

是一種將私有(保留)地址轉化為合法IP地址的轉換技術,它被廣泛應用於各種類型Internet接入方式和各種類型的網絡中。原因很簡單,NAT不僅完美地解決了lP地址不足的問題,而且還能夠有效地避免來自網絡外部的攻擊,隱藏並保護網絡內部的計算機。

DHCP協議 :動態主機設置協議(Dynamic Host ConfigurationProtocol, DHCP)

是一個局域網的網絡協議,使用UDP協議工作,主要有兩個用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員作為對所有計算機作中央管理的手段。

DNS協議 :DNS 是域名系統 (Domain Name System) 的縮寫,是因特網的一項核心服務,它作為可以將域名和IP地址相互映射的一個分佈式數據庫,能夠使人更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。

DNS域名系統,簡單描述其工作原理:

當DNS客戶機需要在程序中使用名稱時,它會查詢DNS服務器來解析該名稱。客戶機發送的每條查詢信息包括三條信息:包括:指定的DNS域名,指定的查詢類型,DNS域名的指定類別。基於UDP服務,端口53. 該應用一般不直接為用戶使用,而是為其他應用服務,如HTTP,SMTP等在其中需要完成主機名到IP地址的轉換。

面向連接和非面向連接的服務的特點是什麼?

面向連接的服務,通信雙方在進行通信之前,要先在雙方建立起一個完整的可以彼此溝通的通道,在通信過程中,整個連接的情況一直可以被實時地監控和管理。

非面向連接的服務,不需要預先建立一個聯絡兩個通信節點的連接,需要通信的時候,發送節點就可以往網絡上發送信息,讓信息自主地在網絡上去傳,一般在傳輸的過程中不再加以監控。

16、B+樹、B-樹和紅黑樹

B-樹的特性:

1.關鍵字集合分佈在整顆樹中;

2.任何一個關鍵字出現且只出現在一個結點中;

3.搜索有可能在非葉子結點結束;

4.其搜索性能等價於在關鍵字全集內做一次二分查找;

5.自動層次控制;

由於限制了除根結點以外的非葉子結點,至少含有M/2個兒子,確保了結點的至少利用率,其最底搜索性能為:O(log2n)只與節點數有關,與M無關。

B+的特性:

1.所有關鍵字都出現在葉子結點的鏈表中(稠密索引),且鏈表中的關鍵字恰好是有序的;

2.不可能在非葉子結點命中;

3.非葉子結點相當於是葉子結點的索引(稀疏索引),葉子結點相當於是存儲(關鍵字)數據的數據層;

4.更適合用於數據庫和操作系統的文件系統;

B+樹的查找:對B+樹可以進行兩種查找運算:

1)從最小關鍵字起順序查找;

2)從根結點開始,進行隨機查找。

B+樹是應文件系統所需而出的一種B-樹的變型樹。一棵m階的B+樹和m階的B-樹的差異在於:

1.有n棵子樹的結點中含有n個關鍵字,每個關鍵字不保存數據,只用來索引,所有數據都保存在葉子節點。

2.所有的葉子結點中包含了全部關鍵字的信息,及指向含這些關鍵字記錄的指針,且葉子結點本身依關鍵字的大小自小而大順序鏈接。

3.所有的非終端結點可以看成是索引部分,結點中僅含其子樹(根結點)中的最大(或最小)關鍵字。

通常在B+樹上有兩個頭指針,一個指、-向根結點,一個指向關鍵字最小的葉子結點。

紅黑樹:紅黑樹就是用紅鏈接表示3-結點的2-3樹。

紅黑樹(Red Black Tree) 是一種自平衡二叉查找樹,是在計算機科學中用到的一種數據結構,典型的用途是實現關聯數組。

紅黑樹性質:

1)每個結點要麼是紅的,要麼是黑的。

2)根結點是黑的。

3)每個葉結點,即空結點(NIL)是黑的。

4)如果一個結點是紅的,那麼它的倆個兒子都是黑的。

5)對每個結點,從該結點到其子孫結點的所有路徑上包含相同數目的黑結點。

紅黑樹的本質:

紅黑樹是對2-3查找樹的改進,只是它們對3結點的表示不同,將3-結點表示為由一條左斜的紅色鏈接相連的兩個2-結點。若指向它的鏈接是紅色的,那麼該節點為紅色,紅黑樹都既是二叉查找樹,也是2-3樹

小結:

B樹:二叉樹,每個結點只存儲一個關鍵字,等於則命中,小於走左結點,大於走右結點;

B-樹:多路搜索樹,每個結點存儲M/2到M個關鍵字,非葉子結點存儲指向關鍵字範圍的子結點;所有關鍵字在整顆樹中出現,且只出現一次,非葉子結點可以命中;

B+樹:在B-樹基礎上,為葉子結點增加鏈表指針,所有關鍵字都在葉子結點中出現,非葉子結點作為葉子結點的索引;B+樹總是到葉子結點才命中;

B*樹:在B+樹基礎上,為非葉子結點也增加鏈表指針,將結點的最低利用率從1/2提高到2/3。


分享到:


相關文章: