2021-03-05 分類: 網站建設
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 的三次握手和四次揮手
(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端一直等待,浪費資源。
(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之間可以開始傳輸數據了。
為什么需要“四次揮手”:
(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。
新聞名稱:你需要了解的計算機基礎知識
本文網址:http://m.newbst.com/news42/104342.html
成都網站建設公司_創新互聯,為您提供網站制作、App設計、ChatGPT、虛擬主機、網站營銷、標簽優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容