计算机网络知识点补充
計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)點(diǎn)補(bǔ)充
目錄:
1. HTTP和HTTPS的區(qū)別
http協(xié)議是運(yùn)行在tcp之上,明文傳輸,客戶端和服務(wù)器端都無法驗(yàn)證對(duì)方的身份;https是運(yùn)行在ssl(Secure Socket Layer)上,ssl協(xié)議運(yùn)行于tcp之上。是添加了加密和認(rèn)證機(jī)制的http。二者有以下不同:
2. 對(duì)稱加密和非對(duì)稱加密
對(duì)稱秘鑰加密是指加密和解密都使用同一個(gè)秘鑰的方式,這種方式存在的最大問題就是秘鑰發(fā)送問題,即如何安全地將秘鑰發(fā)送給對(duì)方。非對(duì)稱加密是指使用一對(duì)非對(duì)稱秘鑰,即公鑰和私鑰,公鑰可以隨意發(fā)布,但私鑰只有自己知道。發(fā)送密文的一方使用對(duì)方的公鑰進(jìn)行加密處理,對(duì)方收到加密信息后,使用自己的私鑰進(jìn)行解密。
由于非對(duì)稱加密的方式不需要發(fā)送用來解密的私鑰,所以可以保證安全性;但和對(duì)稱加密比起來,它非常的慢,所以我們還是要用對(duì)稱加密來傳送消息,但對(duì)稱加密所使用的密鑰我們可以通過非對(duì)稱加密的方式發(fā)送出去。
3. 為什么TCP鏈接需要三次握手,兩次不可以么,為什么?
為了防止已失效的鏈接請(qǐng)求報(bào)文突然又傳送到了服務(wù)端,因而產(chǎn)生錯(cuò)誤。
客戶端發(fā)出的連接請(qǐng)求報(bào)文并未丟失,而是在某個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)長(zhǎng)時(shí)間滯留了,以致延誤到鏈接釋放以后的某個(gè)時(shí)間才到達(dá)Server。這時(shí),Server誤以為是Client發(fā)出的一個(gè)新的鏈接請(qǐng)求,于是就向客戶端發(fā)送確認(rèn)數(shù)據(jù)包,同意建立鏈接。若不采用“三次握手”,那么Server發(fā)出確認(rèn)數(shù)據(jù)包,新的鏈接就建立了。由于client此時(shí)并未發(fā)出建立鏈接的請(qǐng)求,所以其不會(huì)理睬Server的確認(rèn),也不會(huì)與Server通信;而這時(shí)Server值在等待Client的請(qǐng)求,這樣Server就白白浪費(fèi)了一定的資源。若采用“三次握手”,在這種情況下,由于Server端沒有收到來自客戶端的確認(rèn),則就會(huì)知道Client并沒有要求建立請(qǐng)求,就不會(huì)建立鏈接。
5、TCP協(xié)議如何來保證傳輸?shù)目煽啃?/h3>
TCP提供一種面向連接的、可靠的字節(jié)流服務(wù)。其中,面向連接意味著兩個(gè)使用TCP的應(yīng)用(通常是一個(gè)客戶和一個(gè)服務(wù)器)在彼此交換數(shù)據(jù)之前必須先建立一個(gè)TCP連接。在一個(gè)TCP連接中,僅有兩方進(jìn)行彼此通信;而字節(jié)流服務(wù)意味著兩個(gè)應(yīng)用程序通過TCP鏈接交換8bit字節(jié)構(gòu)成的字節(jié)流,TCP不在字節(jié)流中插入記錄標(biāo)識(shí)符。
對(duì)于可靠性,TCP通過以下方式進(jìn)行保證:
數(shù)據(jù)包校驗(yàn):目的是檢測(cè)數(shù)據(jù)在傳輸過程中的任何變化,若校驗(yàn)出包有錯(cuò),則丟棄報(bào)文段并且不給出響應(yīng),這時(shí)TCP發(fā)送數(shù)據(jù)端超時(shí)后會(huì)重發(fā)數(shù)據(jù);
對(duì)失序數(shù)據(jù)包重排序:既然TCP報(bào)文段作為IP數(shù)據(jù)報(bào)來傳輸,而IP數(shù)據(jù)報(bào)的到達(dá)可能會(huì)失序,因此TCP報(bào)文段的到達(dá)也可能會(huì)失序。TCP將對(duì)失序數(shù)據(jù)進(jìn)行重新排序,然后才交給應(yīng)用層;
丟棄重復(fù)數(shù)據(jù):對(duì)于重復(fù)數(shù)據(jù),能夠丟棄重復(fù)數(shù)據(jù);
應(yīng)答機(jī)制:當(dāng)TCP收到發(fā)自TCP連接另一端的數(shù)據(jù),它將發(fā)送一個(gè)確認(rèn)。這個(gè)確認(rèn)不是立即發(fā)送,通常將推遲幾分之一秒;
超時(shí)重發(fā):當(dāng)TCP發(fā)出一個(gè)段后,它啟動(dòng)一個(gè)定時(shí)器,等待目的端確認(rèn)收到這個(gè)報(bào)文段。如果不能及時(shí)收到一個(gè)確認(rèn),將重發(fā)這個(gè)報(bào)文段;
流量控制:TCP連接的每一方都有固定大小的緩沖空間。TCP的接收端只允許另一端發(fā)送接收端緩沖區(qū)所能接納的數(shù)據(jù),這可以防止較快主機(jī)致使較慢主機(jī)的緩沖區(qū)溢出,這就是流量控制。TCP使用的流量控制協(xié)議是可變大小的滑動(dòng)窗口協(xié)議。
6、客戶端不斷進(jìn)行請(qǐng)求鏈接會(huì)怎樣?DDos(Distributed Denial of Service)攻擊?
服務(wù)器端會(huì)為每一個(gè)請(qǐng)求創(chuàng)建一個(gè)鏈接,并向其發(fā)送確認(rèn)報(bào)文,然后等待客戶端進(jìn)行確認(rèn)。
DDos(分布式拒絕服務(wù)攻擊)攻擊
- 客戶端向服務(wù)端發(fā)送請(qǐng)求鏈接數(shù)據(jù)包
- 服務(wù)端向客戶端發(fā)送確認(rèn)數(shù)據(jù)包
- 客戶端不向服務(wù)端發(fā)送確認(rèn)數(shù)據(jù)包,服務(wù)器一直等待來自客戶端的確認(rèn)
DDos 預(yù)防 ( 沒有徹底根治的辦法,除非不使用TCP )
- 限制同時(shí)打開SYN半鏈接的數(shù)目
- 縮短SYN半鏈接的Time out 時(shí)間
- 關(guān)閉不必要的服務(wù)
總結(jié)
以上是生活随笔為你收集整理的计算机网络知识点补充的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络常见问题总结
- 下一篇: 反射、对象拷贝、异常常见问题总结