面試軟件測試,經常被問到的計算機網絡題,看這篇就夠
來源:湖北國菱計算機科技有限公司-湖北國聯計算機科技有限公司-荊州網站建設-荊州軟件開發(fā)-政府網站建設公司
時間:2025-03-10
進行軟件測試面試時,相信大家或多或少都會被問到一些關于計算機網絡的問題,今天這篇文章就目前反饋比較多的計算機網絡面試題及答案做了一個整理,在找工作的你,趕緊看過來~
1. 說一下你理解的七層網絡模型?
答案:
應用層:網絡服務與最終用戶的一個接口。協議有:HTTP FTP TFTP DNS協議等;
表示層:數據的表示、安全、壓縮的格式;
會話層:建立、管理、終止會話。對應主機進程,指本地主機與遠程主機正在進行的會話
傳輸層:定義傳輸數據的協議端口號,以及流控和差錯校驗。協議有:TCP UDP協議。
網絡層:進行邏輯地址尋址,實現不同網絡之間的路徑選擇。協議有:ICMP IP(IPV4 IPV6)
數據鏈路層:建立邏輯連接、進行硬件地址尋址功能。將比特組合成字節(jié)進而組合成幀,用MAC地址訪問介質,錯誤發(fā)現但不能糾正。
物理層:建立、維護、斷開物理連接。
2. TCP協議的三次握手過程?
答案:
TCP協議要建立連接的時候,需要經歷三次握手的過程:
第一次握手:是客戶端向服務器發(fā)起的,用來申請建立連接的,這個報文中的SYN標志位標記為1,所以我們也叫作SYN包;
第二次握手:是服務器回復客戶端的,用來確認并接受連接請求的,這個報文中的SYN位和ACK位都標記為1,所以叫做SYN-ACK報文;
第三次握手:仍然是客戶端發(fā)給服務器的,用來確認服務器的回復消息,這個報文中的ACK標志位標記為1,所以我們也叫作ACK包。
這就是TCP協議的三次握手過程。
3. 有了解TCP握手是握幾次嗎?為什么要握三次手?
答案:
3次。
客戶端發(fā)送請求建立連接的數據包可能會滯留在網絡中,等到后續(xù)這個連接斷開之后再次到達服務器,那么服務器會發(fā)送消息告訴客戶端可以發(fā)送消息,但是客戶端不會理會服務器也不會發(fā)送消息,服務器端處于等待狀態(tài),會造成資源浪費
4. TCP協議的4次揮手?
答案:
TCP協議完成了數據發(fā)送之后,就會斷開連接,此時就需要經歷四次揮手的過程:
第一次揮手:是客戶端向服務器發(fā)起的,用來申請斷開連接的,這個報文中的FIN標志位標記為1,所以我們也叫作FIN包;
第二次揮手:是服務器回復客戶端的,用來確認客戶端的上一個斷開連接請求的,所以是一個ACK報文;
第三次揮手:仍然是服務器發(fā)給客戶端的,用來告知客戶端服務器的數據發(fā)送完畢了,需要斷開連接;這個報文中的FIN標志位標記為1,所以也是一個FIN包。
第四次揮手:是客戶端回復服務器的,確認服務器的上一個斷開連接請求,所以也是一個ACK報文;
這就是TCP協議的四次揮手過程。
5. 為什么握手需要三次,揮手卻需要四次呢?
答案:
三次握手是TCP協議建立連接的過程,建立連接,我只需要確認一下你在我也在就好了啊,三次握手夠了;
但是四次揮手是TCP協議是為了斷開連接的,所以需要確保我既結束發(fā)送數據,也結束接收數據;開始客戶端先結束發(fā)送并告知服務器,服務器確認后就結束接收了;這兩次揮手完成后,客戶端還在接收數據哦,服務器也還在發(fā)送;所以需要服務器也發(fā)送一次FIN包,告知我也結束數據發(fā)送了,客戶端確認后,才雙方都關閉發(fā)送和接收數據通道,所以必須要四次~
6. tcp和udp的區(qū)別?
答案:
TCP協議和UDP協議都是傳輸層的兩個協議: 它們的區(qū)別主要有如下3個方面:
第一:TCP是面向連接,就像打電話要先撥號建立連接一樣,而UDP是無連接的,即發(fā)送數據之前不需要建立連接。
第二:TCP可以提供可靠的服務,能保證數據傳輸無差錯,不丟失,不重復,且按序到達;而UDP協議只是盡最大努力交付,即不保證可靠交付。
第三:因為TCP以上兩個特點,所以對應傳輸效率相對較低,而UDP效率高,所以一些注重速度而不在乎的丟包的場景,會選擇用UDP協議,比如IP電話,流媒體等。
7. 你了解http協議有哪些響應狀態(tài)碼?
答案:
狀態(tài)碼有如下幾種:
a. 1xx(臨時響應):表示臨時響應并需要請求者繼續(xù)執(zhí)行操作的狀態(tài)代碼。
b. 2xx (成功):表示成功處理了請求的狀態(tài)代碼。
c. 3xx (重定向):表示要完成請求,需要進一步操作。 通常,這些狀態(tài)代碼用來重定向。
d. 4xx(請求錯誤):這些狀態(tài)代碼表示請求可能出錯,妨礙了服務器的處理。
e. 5xx(服務器錯誤):這些狀態(tài)代碼表示服務器在嘗試處理請求時發(fā)生內部錯誤。 這些錯誤可能是服務器本身的錯誤,而不是請求出錯。
8. HTTP和HTTPS的區(qū)別?
答案:
從安全性來說:http明文傳輸,易受攻擊,無法確認雙方身份,也無法保證數據的完整性;https使用ssl加密傳輸協議,信息是密文,可以認證雙方身份,防止信息被截取篡改,安全性相比http要高
從端口來看:http默認端口80,https默認端口443
靈活性上:http簡單快速,使用靈活;https技術門檻較高,多數個人或私人網站難以支撐
訪問速度:http協議簡單,http服務器的程序規(guī)模小,因而通信速度很快;https加重了服務端負擔,需要更多的資源來支撐,降低了用戶的訪問速度
經濟適用度:http沒有額外的費用要求,https協議CA機構頒發(fā)的證書都是需年費的,此外對接https協議也需要額外的技術支持
9、https協議比http安全,是如何實現的呢?
答案:
https協議通過SSL協議外殼來實現它的安全性,主要體現在三個方面:
第一:數據是加密的,SSL協議通過非對稱秘鑰分發(fā)的方式完成秘鑰的協商,然后通過對稱秘鑰的加密方式完成數據的加密;
第二:會驗證對方身份。服務端和客戶端雙方會需要向CA機構申請證書,再SSL握手階段會驗證雙方證書是否可信,從而驗證雙方的身份,防止第三方冒充;
第三:保證數據的完整性。每次的數據都會加上MAC摘要并簽名,接收的數據和發(fā)送的數據這個摘要信息一致的,就表示數據沒有被篡改過。
10、當一個用戶在瀏覽器輸入url打開一個網頁的時候,從輸入到加載完整個過程經歷了什么?
答案:
a. 首先它會進行DNS的域名解析;
b. 建立TCP連接;發(fā)起tcp的三次握手
c. 發(fā)送一個HTTP的請求;
d. 服務器處理相關的請求并返回處理后的結果;
e. 關閉TCP連接;
f. 瀏覽器接收到服務器給到的html代碼,開始解析;
g. 瀏覽器將解析后的資源(如js、css、圖片等)進行請求,并對頁面進行渲染呈現給用戶。
(轉載自:CSDN, 版權聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明原文鏈接: