以下都是面試經驗不足的筆者在爲數不多的面試過程中遇到的一些問題,解答僅供參考。
TCP和UDP的區別
答:TCP是面向連接的協議,在數據傳輸之前會在通信雙方之間建立連接,是能保證可靠傳輸的協議,接收方接收到的數據是完整、有序、無差錯的;UDP不需要建立連接,不保證可靠傳輸,接收方接收到的數據可能存在部分丟失,順序性也得不到保證。
TCP是怎樣保持可靠連接的?
答:TCP爲了保證數據的完整、有序接收,採用序號和確認序號、超時重傳、流量控制和擁塞控制等機制。
流量控制和擁塞控制的區別
答:流量控制是通過滑動窗口機制來平衡發送方發送數據的速率和接收方接收數據的速率。而擁塞控制是指兩個主機之間的網絡發生擁塞,涉及到所有的主機、路由器、以及降低網絡性能的所有因素,是一個全局性的控制,發送報文的發送速率,既要考慮接收方的接收速率,又要考慮到網絡的擁塞情況。
TCP建立連接和斷開連接的過程
答:參考下圖
TCP爲什麼要三次握手?
答:①TCP是通過序列號來保證通信雙方發送的數據的有序性,第三次連接保證了sever發送的序列號被確認。②防止已經失效的請求又傳回服務端,因而產生錯誤。參考文章
哪些協議基於TCP?
答:HTTP、FTP(文件傳輸協議)、SMTP(簡單郵件傳輸協議)、POP3、TelNet(遠程終端協議)。
【注】DNS基於TCP和UDP協議。
HTTP爲什麼是基於TCP而不是基於UDP?
答:HTTP傳輸一個頁面,其中包含很多數據信息,需要TCP的可靠傳輸來保證數據信息的完整性和有序性。
如果TCP包在數據鏈路層丟失,會發生什麼?