秋招、實習-計算機網絡常見面試題

前言

以下是本人對2019年秋招與實習的計算機網絡面經的相關總結1,如果有錯誤請指出。對你有幫助的可以點贊或者關注我哦、~ 後續還會有面經分享以及完善補充

一,TCP爲什麼需要3次握手,4次斷開?

三次握手”的目的是“爲了防止已失效的連接請求報文段突然又傳送到了服務端,因而產生錯誤”。 client發出的第一個連接請求報文段並沒有丟失,而是在某個網絡結點長時間的滯留了,以致延誤到連接釋放以後的某個時間纔到達server。本來這是一個早已失效的報文段。但server收到此失效的連接請求報文段後,就誤認爲是client再次發出的一個新的連接請求。於是就向client發出確認報文段,同意建立連接。假設不採用“三次握手”,那麼只要server發出確認,新的連接就建立了。由於現在client並沒有發出建立連接的請求,因此不會理睬server的確認,也不會向server發送數據。但server卻以爲新的運輸連接已經建立,並一直等待client發來數據。這樣,server的很多資源就白白浪費掉了。採用“三次握手”的辦法可以防止上述現象發生。例如剛纔那種情況,client不會向server的確認發出確認。server由於收不到確認,就知道client並沒有要求建立連接。”。主要目的防止server端一直等待,浪費資源。

爲什麼4次斷開?

因爲TCP有個半關閉狀態,假設A.B要釋放連接,那麼A發送一個釋放連接報文給B,B收到後發送確認,這個時候A不發數據,但是B如果發數據A還是要接受,這叫半關閉。然後B還要發給A連接釋放報文,然後A發確認,所以是4次。

在tcp連接握手時爲何ACK是和SYN一起發送,這裏ACK卻沒有和FIN一起發送呢。原因是因爲tcp是全雙工模式,接收到FIN時意味將沒有數據再發來,但是還是可以繼續發送數據。

二·,TCP和UDP有什麼區別?

TCP是傳輸控制協議,提供的是面向連接、可靠的字節流服務。通信雙方彼此交換數據前,必須先通過三次握手協議建立連接,之後才能傳輸數據。TCP提供超時重傳,丟棄重複數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另一端。UDP是用戶數據報協議,是一個簡單的面向無連接的協議。UDP不提供可靠的服務。在數據數據前不用建立連接故而傳輸速度很快。UDP主要用戶流媒體傳輸,IP電話等對數據可靠性要求不是很高的場合。

三,ARP是地址解析協議,簡單語言解釋一下工作原理。

(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響應。

四,http與https的區別

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

爲了解決HTTP協議的這一缺陷,需要使用另一種協議:安全套接字層超文本傳輸協議HTTPS,爲了數據傳輸的安全,HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證服務器的身份,併爲瀏覽器和服務器之間的通信加密。

1、HTTP和HTTPS的基本概念

HTTP:是互聯網上應用最爲廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標準(TCP),用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網絡傳輸減少。

HTTPS:是以安全爲目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

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

2、HTTP與HTTPS有什麼區別?

HTTP協議傳輸的數據都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私信息非常不安全,爲了保證這些隱私數據能加密傳輸,於是網景公司設計了SSL(Secure Sockets Layer)協議用於對HTTP協議傳輸的數據進行加密,從而就誕生了HTTPS。簡單來說,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。

HTTPS和HTTP的區別主要如下:

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

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

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

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

3、HTTPS的工作原理

我們都知道HTTPS能夠加密信息,以免敏感信息被第三方獲取,所以很多銀行網站或電子郵箱等等安全級別較高的服務都會採用HTTPS協議。
  在這裏插入圖片描述
  客戶端在使用HTTPS方式與Web服務器通信時有以下幾個步驟,如圖所示。

(1)客戶使用https的URL訪問Web服務器,要求與Web服務器建立SSL連接。

(2)Web服務器收到客戶端請求後,會將網站的證書信息(證書中包含公鑰)傳送一份給客戶端。

(3)客戶端的瀏覽器與Web服務器開始協商SSL連接的安全等級,也就是信息加密的等級。

(4)客戶端的瀏覽器根據雙方同意的安全等級,建立會話密鑰,然後利用網站的公鑰將會話密鑰加密,並傳送給網站。

(5)Web服務器利用自己的私鑰解密出會話密鑰。

(6)Web服務器利用會話密鑰加密與客戶端之間的通信。
在這裏插入圖片描述
4、HTTPS的優點

儘管HTTPS並非絕對安全,掌握根證書的機構、掌握加密算法的組織同樣可以進行中間人形式的攻擊,但HTTPS仍是現行架構下最安全的解決方案,主要有以下幾個好處:

(1)使用HTTPS協議可認證用戶和服務器,確保數據發送到正確的客戶機和服務器;

(2)HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全,可防止數據在傳輸過程中不被竊取、改變,確保數據的完整性。

(3)HTTPS是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。

(4)谷歌曾在2014年8月份調整搜索引擎算法,並稱“比起同等HTTP網站,採用HTTPS加密的網站在搜索結果中的排名將會更高”。

5、HTTPS的缺點

雖然說HTTPS有很大的優勢,但其相對來說,還是存在不足之處的:

(1)HTTPS協議握手階段比較費時,會使頁面的加載時間延長近50%,增加10%到20%的耗電;

(2)HTTPS連接緩存不如HTTP高效,會增加數據開銷和功耗,甚至已有的安全措施也會因此而受到影響;

(3)SSL證書需要錢,功能越強大的證書費用越高,個人網站、小網站沒有必要一般不會用。

(4)SSL證書通常需要綁定IP,不能在同一IP上綁定多個域名,IPv4資源不可能支撐這個消耗。

(5)HTTPS協議的加密範圍也比較有限,在黑客攻擊、拒絕服務攻擊、服務器劫持等方面幾乎起不到什麼作用。最關鍵的,SSL證書的信用鏈體系並不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行。

6、HTTP切換到HTTPS

如果需要將網站從http切換到https到底該如何實現呢?

 這裏需要將頁面中所有的鏈接,例如js,css,圖片等等鏈接都由http改爲https。例如:http://www.baidu.com改爲https://www.baidu.com

BTW,這裏雖然將http切換爲了https,還是建議保留http。所以我們在切換的時候可以做http和https的兼容,具體實現方式是,去掉頁面鏈接中的http頭部,這樣可以自動匹配http頭和https頭。例如:將http://www.baidu.com改爲//www.baidu.com。然後當用戶從http的入口進入訪問頁面時,頁面就是http,如果用戶是從https的入口進入訪問頁面,頁面即使https的。

五、HTTP 的 POST 和 GET 區別

原理,表現形式,http響應
http協議最常見的兩種方法GET和POST
請求緩存:GET 會被緩存,而post不會

**收藏書籤:**GET可以,而POST不能

保留瀏覽器歷史記錄:GET可以,而POST不能

用處:get常用於取回數據,post用於提交數據

安全性:post比get安全

請求參數:querystring 是url的一部分get、post都可以帶上。 get的querystring(僅支持urlencode編碼),post的參數是放在body(支持多種編碼)

請求參數長度限制:get請求長度最多1024kb,post對請求數據沒有限制
*

六、DNS 解析過程

網絡客戶端就是我們平常使用的電腦,打開瀏覽器,輸入一個域名。比如輸入www.163.com,這時,你使用的電腦會發出一個DNS請求到本地DNS服務器。本地DNS服務器一般都是你的網絡接入服務器商提供,比如中國電信,中國移動。
查詢www.163.com的DNS請求到達本地DNS服務器之後,本地DNS服務器會首先查詢它的緩存記錄,如果緩存中有此條記錄,就可以直接返回結果。如果沒有,本地DNS服務器還要向DNS根服務器進行查詢。
根DNS服務器沒有記錄具體的域名和IP地址的對應關係,而是告訴本地DNS服務器,你可以到域服務器上去繼續查詢,並給出域服務器的地址。
本地DNS服務器繼續向域服務器發出請求,在這個例子中,請求的對象是.com域服務器。.com域服務器收到請求之後,也不會直接返回域名和IP地址的對應關係,而是告訴本地DNS服務器,你的域名的解析服務器的地址。
最後,本地DNS服務器向域名的解析服務器發出請求,這時就能收到一個域名和IP地址對應關係,本地DNS服務器不僅要把IP地址返回給用戶電腦,還要把這個對應關係保存在緩存中,以備下次別的用戶查詢時,可以直接返回結果,加快網絡訪問。

七、HTTP 響應碼 301 和 302 代表的是什麼?有什麼區別?

通過響應碼能夠對錯誤進行排查和定位
HTTP響應碼通常分爲五大類:
1XX——信息類(Information),表示收到http請求,正在進行下一步處理,通常是一種瞬間的響應狀態

2XX——成功類(Successful),表示用戶請求被正確接收、理解和處理 200(OK):請求成功。一般用於GET與POST請求 201(Created):已創建。成功請求並創建了新的資源202(Accepted):接受

3XX——重定向類(Redirection),表示沒有請求成功,必須採取進一步的動作 301(Moved Permanently):資源被永久移動。請求的資源已被永久的移動到新URI,返回信息會包括新的URI,瀏覽器會自動定向到新URI。今後任何新的請求都應使用新的URI 302(Found)資源臨時移動。資源只是臨時被移動,客戶端應繼續使用原有URI 304:用其他策略獲取資源

4XX——客戶端錯誤(Client Error),表示客戶端提交的請求包含語法錯誤或不能正確執行 400(Bad Requests):客戶端請求的地址不存在或者包含不支持的參數 401(Unauthorized):未授權,或認證失敗。對於需要登錄的網頁,服務器可能返回此響應 403(Forbidden):沒權限。服務器收到請求,但拒絕提供服務 404(Not Found):請求的資源不存在。遇到404首先檢查請求url是否正確

5XX——服務端錯誤(Server Error),表示服務器不能正確執行一個正確的請求(客戶端請求的方法及參數是正確的,服務端不能正確執行,如網絡超時、服務僵死,可以查看服務端日誌再進一步解決) 500(Internal Server Error):服務器內部錯誤,無法完成請求 503(Service Unavailable):由於超載或系統維護(一般是訪問人數過多),服務器無法處理客戶端的請求 ,通常這只是暫時狀態。

八、常用的加密算法

1、對稱的,非對稱,基於hash的.

1.加密算法概述 用於對用戶數據進行加密,常用算法有DES、3DES、AES、RSA、DH算法。根據密鑰特徵,分爲對稱和非對稱算法。

(1)對稱算法

DES:Data Encryption Standard數據加密標準
3DES:Triple DES三重數據加密標準算法
AES: Advanced Encryption Standard高級加密標準

(2)非對稱算法有: RSA DH

(3)hash算法

【傳送門】網絡安全以及加密算法

九、IP 地址子網劃分

· 主機號全爲0的是網絡號,全1的爲廣播地址
· · 定向廣播(能跨路由轉發):IP地址的網絡部分很明確,主機部分全爲1
· · A類網絡默認子網掩碼255.0.0.0
· B類網絡默認子網掩碼255.255.0.0
· C類網絡默認子網掩碼255.255.255.0
在這裏插入圖片描述

十、其他協議

(1)ICMP協議?
ICMP是InternetControl Message Protocol,因特網控制報文協議。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由器是否可用等網絡本身的消息。這些控制消息雖然並不傳輸用戶數據,但是對於用戶數據的傳遞起着重要的作用。ICMP報文有兩種:差錯報告報文和詢問報文。

(2)DHCP協議?
動態主機配置協議,是一種讓系統得以連接到網絡上,並獲取所需要的配置參數手段。通常被應用在大型的局域網絡環境中,主要作用是集中的管理、分配IP地址,使網絡環境中的主機動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,並能夠提升地址的使用率。

十一、數據鏈路層協議可能提供的服務?

成幀、鏈路訪問、透明傳輸、可靠交付、流量控制、差錯檢測、差錯糾正、半雙工和全雙工。最重要的是幀定界(成幀)、透明傳輸以及差錯檢測。

十二、網絡接口卡(網卡)的功能?

(1)進行串行/並行轉換。

(2)對數據進行緩存。

(3)在計算機的操作系統安裝設備驅動程序。

(4)實現以太網協議。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章