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