成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

快問快答,計算機網絡面試奪命20問

網絡 通信技術
TCP 傳輸過程中一開始就發送大量數據,如果當時網絡非常擁堵,可能會造成擁堵加劇。所以 TCP 引入了慢啟動機制,在開始發送數據的時候,先發少量的數據探探路。

[[414422]]

本文轉載自微信公眾號「愛笑的架構師」,作者雷小帥 。轉載本文請聯系愛笑的架構師公眾號。

在面試中計算機網絡是面試官最喜歡考察的內容之一,下面這奪命 20 問一定要掌握喲!

網絡分層

1、說說OSI 七層、TCP/IP 四層的關系和區別?

OSI 七層從下往上依次是:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。一張圖給你整明白:

(圖片來源于網絡)

TCP/IP 四層從下往上依次是:網絡接口層、網絡層、傳輸層、應用層。與 OSI 七層的映射關系如下:

特點:

  • 層與層之間相互獨立又相互依靠
  • 上層依賴于下層,下層為上層提供服務

敲黑板:TCP/IP 四層是 OSI 七層的簡化版,已經成為實事國際標準。

TCP/IP

2、說說TCP 與 UDP 的區別?

先上一張對比圖:

總結

  • TCP 向上層提供面向連接的可靠服務 ,UDP 向上層提供無連接不可靠服務。
  • UDP 沒有 TCP 傳輸可靠,但是可以在實時性要求搞的地方有所作為。
  • 對數據準確性要求高,速度可以相對較慢的,可以選用TCP。

3、TCP 是如何實現數據的可靠性?

一句話:通過校驗和、序列號、確認應答、超時重傳、連接管理、流量控制、擁塞控制等機制來保證可靠性。

(1)校驗和

在數據傳輸過程中,將發送的數據段都當做一個16位的整數,將這些整數加起來,并且前面的進位不能丟棄,補在最后,然后取反,得到校驗和。

發送方:在發送數據之前計算校驗和,并進行校驗和的填充。接收方:收到數據后,對數據以同樣的方式進行計算,求出校驗和,與發送方進行比較。

(2)序列號

TCP 傳輸時將每個字節的數據都進行了編號,這就是序列號。序列號的作用不僅僅是應答作用,有了序列號能夠將接收到的數據根據序列號進行排序,并且去掉重復的數據。

(3)確認應答

TCP 傳輸過程中,每次接收方接收到數據后,都會對傳輸方進行確認應答,也就是發送 ACK 報文,這個 ACK 報文中帶有對應的確認序列號,告訴發送方,接收了哪些數據,下一次數據從哪里傳。

(4)超時重傳

在進行 TCP 傳輸時,由于存在確認應答與序列號機制,也就是說發送方發送一部分數據后,都會等待接收方發送的 ACK 報文,并解析 ACK 報文,判斷數據是否傳輸成功。如果發送方發送完數據后,遲遲都沒有接收到接收方傳來的 ACK 報文,那么就對剛剛發送的數據進行重發。

(5)連接管理

就是指三次握手、四次揮手的過程。

(6)流量控制

如果發送方的發送速度太快,會導致接收方的接收緩沖區填充滿了,這時候繼續傳輸數據,就會造成大量丟包,進而引起丟包重傳等等一系列問題。TCP 支持根據接收端的處理能力來決定發送端的發送速度,這就是流量控制機制。

具體實現方式:接收端將自己的接收緩沖區大小放入 TCP 首部的『窗口大小』字段中,通過 ACK 通知發送端。

(7)擁塞控制

TCP 傳輸過程中一開始就發送大量數據,如果當時網絡非常擁堵,可能會造成擁堵加劇。所以 TCP 引入了慢啟動機制,在開始發送數據的時候,先發少量的數據探探路。

4、說說 TCP 協議如何提高傳輸效率?

一句話:TCP 協議提高效率的方式有滑動窗口、快重傳、延遲應答、捎帶應答等。

(1)滑動窗口

如果每一個發送的數據段,都要收到 ACK 應答之后再發送下一個數據段,這樣的話我們效率很低,大部分時間都用在了等待 ACK 應答上了。

為了提高效率我們可以一次發送多條數據,這樣就能使等待時間大大減少,從而提高性能。窗口大小指的是無需等待確認應答而可以繼續發送數據的最大值。

(2)快重傳

快重傳也叫高速重發控制。

那么如果出現了丟包,需要進行重傳。一般分為兩種情況:

情況一:數據包已經抵達,ACK被丟了。這種情況下,部分ACK丟了并不影響,因為可以通過后續的ACK進行確認;

情況二:數據包直接丟了。發送端會連續收到多個相同的 ACK 確認,發送端立即將對應丟失的數據重傳。

(3)延遲應答

如果接收數據的主機立刻返回ACK應答,這時候返回的窗口大小可能比較小。

  • 假設接收端緩沖區為1M,一次收到了512K的數據;如果立刻應答,返回的窗口就是512K;
  • 但實際上可能處理端處理速度很快,10ms之內就把512K的數據從緩存區消費掉了;
  • 在這種情況下,接收端處理還遠沒有達到自己的極限,即使窗口再放大一些,也能處理過來;
  • 如果接收端稍微等一會在應答,比如等待200ms再應答,那么這個時候返回的窗口大小就是1M;

窗口越大,網絡吞吐量就越大,傳輸效率就越高;我們的目標是在保證網絡不擁塞的情況下盡量提高傳輸效率。

(4)捎帶應答

在延遲應答的基礎上,很多情況下,客戶端服務器在應用層也是一發一收的。這時候常常采用捎帶應答的方式來提高效率,而ACK響應常常伴隨著數據報文共同傳輸。如:三次握手。

5、你知道 TCP 如何處理擁塞嗎?

網絡擁塞現象是指到達通信網絡中某一部分的分組數量過多,使得該部分網絡來不及處理,以致引起這部分乃至整個網絡性能下降的現象,嚴重時甚至會導致網絡通信業務陷入停頓,即出現死鎖現象。擁塞控制是處理網絡擁塞現象的一種機制。

擁塞控制的四個階段:

  • 慢啟動
  • 擁塞避免
  • 快速重傳
  • 快速恢復

6、講一下三次握手和四次揮手全過程

三次握手的過程給面試官甩一張圖:

四次揮手的過程再給面試官甩一張圖:

7、為什么 TCP 鏈接需要三次握手,兩次不可以么,為什么?

  • 兩次握手只能保證單向連接是暢通的

第一步,客戶端給服務端發送一條消息:你好,服務端。第二步,服務端收到消息,同時給客戶端回復一條消息:收到!你好客戶端。

這樣的兩次握手過程, 客戶端給服務端打招呼,服務端收到了,說明客戶端可以正常給服務端發送數據。但是服務端給客戶端打招呼,服務端沒有收到反饋,也就不能確保服務端是否能正常給客戶端發送消息。

  • 只有經過第三次握手,才能確保雙向都可以接收到對方的發送的數據 第三步,客戶端收到服務端發送的消息,回復:收到!這樣就證明了客戶端能正常收到服務端的消息。

8、IP地址是怎樣分類的,你知道嗎?

先說一下 IP 的基本特點:

  • IP地址由四段組成,每個字段是一個字節,8位,最大值是255。
  • IP地址由兩部分組成,即網絡地址和主機地址。網絡地址表示其屬于互聯網的哪一個網絡,主機地址表示其屬于該網絡中的哪一臺主機。

IP 地址主要分為A、B、C三類及特殊地址D、E這五類,甩一張圖:

A類:(1.0.0.0-126.0.0.0)一般用于大型網絡。

B類:(128.0.0.0-191.255.0.0)一般用于中等規模網絡。

C類:(192.0.0.0-223.255.255.0)一般用于小型網絡。

D類:是多播地址,地址的網絡號取值于224~239之間,一般用于多路廣播用戶。

E類:是保留地址。地址的網絡號取值于240~255之間。

HTTP協議

9、講一下 http1.1 和 http2 有什么區別?

HTTP1.1

  • 持久連接
  • 請求管道化
  • 增加緩存處理(新的字段如cache-control)
  • 增加 Host 字段、支持斷點傳輸等

HTTP2.0

  • 二進制分幀
  • 多路復用(或連接共享)
  • 頭部壓縮
  • 服務器推送

10、說說 HTTP 和HTTPS 的區別?

(1)HTTPS 協議需要到 CA 申請證書,一般免費證書較少,因而需要一定費用。(2)HTTP 是超文本傳輸協議,信息是明文傳輸,HTTPS 則是具有安全性的 SSL 加密傳輸協議。(3)HTTP 和 HTTPS 使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。(4)HTTP 的連接很簡單,是無狀態的;HTTPS 協議是由 SSL+HTTP 協議構建的可進行加密傳輸、身份認證的網絡協議,比 HTTP 協議安全。

11、你知道對稱加密和非對稱加密的區別和原理嗎?

對稱密鑰加密是指加密和解密使用同一個密鑰的方式,這種方式存在的最大問題就是密鑰發送問題,即如何安全地將密鑰發給對方;

而非對稱加密是指使用一對非對稱密鑰,即公鑰和私鑰,公鑰可以隨意發布,但私鑰只有自己知道。發送密文的一方使用對方的公鑰進行加密處理,對方接收到加密信息后,使用自己的私鑰進行解密。

由于非對稱加密的方式不需要發送用來解密的私鑰,所以可以保證安全性;但是和對稱加密比起來,它比較慢,所以我們還是要用對稱加密來傳送消息,但對稱加密所使用的密鑰我們可以通過非對稱加密的方式發送出去。

12、常見的狀態碼有哪些?

1×× : 請求處理中,請求已被接受,正在處理

2×× : 請求成功,請求被成功處理 200 OK

3×× : 重定向,要完成請求必須進行進一步處理 301 : 永久性轉移 302 :暫時性轉移 304 :已緩存

4×× : 客戶端錯誤,請求不合法 400:Bad Request,請求有語法問題 403:拒絕請求 404:客戶端所訪問的頁面不存在

5×× : 服務器端錯誤,服務器不能處理合法請求 500 :服務器內部錯誤 503 :服務不可用,稍等

13、http中常見的header字段有哪些?

cookie,請求時傳遞給服務端的cookie信息 set-cookie,響應報文首部設置要傳遞給客戶端的cookie信息 allow,支持什么HTTP方法 last-modified,資源的最后修改時間 expires,設置資源緩存的失敗日期 content-language,實體的資源語言 content-encoding,實體的編碼格式 content-length,實體主體部分的大小單位是字節 content-range,返回的實體的哪些范圍 content-type,哪些類型 accept-ranges,處理的范圍請求 age,告訴客戶端服務器在多久前創建了響應 vary,代理服務器的緩存信息 location,用于指定重定向后的URI If-Match,值是資源的唯一標識 User-Agent,將創建請求的瀏覽器和用戶代理名稱等信息傳遞給服務器 Transfer-Encoding,傳輸報文的主體編碼方式 connection,管理持久連接,keep-alive , close Cache-Control,控制瀏覽器的強緩存

14、Get與POST的區別

(1)GET 一般用來從服務器上獲取資源,POST 一般用來創建資源;

(2)GET 是冪等的,即讀取同一個資源,總是得到相同的數據,而 POST 不是冪等的。GET 不會改變服務器上的資源,而 POST 會對服務器資源進行改變;

(3)從請求參數形式上看,GET 請求的數據會附在URL之后;而 POST 請求會把提交的數據則放置在是HTTP請求報文的請求體中。

(4)POST 的安全性要比 GET 的安全性高,因為 GET 請求提交的數據將明文出現在 URL 上,而 POST 請求參數則被包裝到請求體中,相對更安全。

(5)GET 請求的長度受限于瀏覽器或服務器對URL長度的限制,允許發送的數據量比較小,而POST請求則是沒有大小限制的。

15、DNS 的尋址過程你知道嗎?

(1)在瀏覽器中輸入www.baidu.com域名,操作系統會先檢查自己本地的 hosts 文件是否有這個網址映射關系,如果有就先調用這個IP地址映射,完成域名解析。

(2)如果 hosts 里沒有這個域名的映射,則查找本地 DNS 解析器緩存,是否有這個網址映射關系,如果有直接返回,完成域名解析。

(3)如果 hosts 與本地 DNS 解析器緩存都沒有相應的網址映射關系,首先會找 TCP/IP 參數中設置的首選 DNS 服務器,在此我們叫它本地 DNS 服務器,此服務器收到查詢時,如果要查詢的域名,包含在本地配置區域資源中,則返回解析結果給客戶機,完成域名解析,此解析具有權威性。

(4)如果要查詢的域名,不由本地 DNS 服務器區域解析,但該服務器已緩存了此網址映射關系,則調用這個 IP 地址映射,完成域名解析,此解析不具有權威性。

(5)如果本地 DNS 服務器本地區域文件與緩存解析都失效,則根據本地 DNS 服務器的設置(是否設置轉發器)進行查詢,如果未用轉發模式,本地 DNS 就把請求發至13臺根 DNS ,根 DNS 服務器收到請求后會判斷這個域名(.com)是誰來授權管理,并會返回一個負責該頂級域名服務器的一個IP。本地 DNS 服務器收到IP信息后,將會聯系負責 .com 域的這臺服務器。這臺負責 .com 域的服務器收到請求后,如果自己無法解析,它就會找一個管理.com域的下一級DNS服務器地址(baidu.com)給本地 DNS 服務器。當本地 DNS 服務器收到這個地址后,就會找 baidu.com 域服務器,重復上面的動作,進行查詢,直至找到 www.baidu.com 主機。

(6)如果用的是轉發模式,此 DNS 服務器就會把請求轉發至上一級 DNS 服務器,由上一級服務器進行解析,上一級服務器如果不能解析,或找根 DNS 或把轉請求轉至上上級,以此循環。不管是本地 DNS 服務器用是是轉發,還是根提示,最后都是把結果返回給本地 DNS 服務器,由此 DNS 服務器再返回給客戶機。

16、在瀏覽器中輸入一個www.baidu.com后執行的全部過程?

總體流程

域名解析 -> 建立TCP連接(三次握手)-> 發起http請求 -> 服務器響應http請求,瀏覽器得到html代碼 -> 瀏覽器解析html代碼,并請求html代碼中的資源(如 js、css、圖片等)-> 瀏覽器對頁面進行渲染呈獻給用戶。

17、Session、Cookie 的區別

  • session 在服務器端,cookie 在客戶端(瀏覽器)
  • session 默認被存儲在服務器的一個文件里(不是內存)
  • session 的運行依賴 session id,而 session id 是存在 cookie 中的,也就是說,如果瀏覽器禁用了 cookie ,同時 session 也會失效(但是可以通過其它方式實現,比如在 url 中傳遞 session_id)
  • session 可以放在 文件、數據庫、或內存中都可以。

用戶驗證這種場合一般會用 session

18、有哪些 web 性能優化技術?

  • DNS查詢優化
  • 客戶端緩存
  • 優化TCP連接
  • 避免重定向
  • 網絡邊緣的緩存
  • 條件緩存
  • 壓縮和代碼極簡化
  • 圖片優化

網絡安全

19、什么是 XSS 攻擊?

XSS 即(Cross Site Scripting)中文名稱為:跨站腳本攻擊。XSS的重點不在于跨站點,而在于腳本的執行。

XSS的原理是:

惡意攻擊者在web頁面中會插入一些惡意的script代碼。當用戶瀏覽該頁面的時候,那么嵌入到web頁面中script代碼會執行,因此會達到惡意攻擊用戶的目的。

XSS攻擊最主要有如下分類:反射型、存儲型、及 DOM-based型。反射性和DOM-baseed型可以歸類為非持久性XSS攻擊。存儲型可以歸類為持久性XSS攻擊。

20、什么是跨站攻擊CSRF?

CSRF(Cross Site Request Forgery,跨站域請求偽造)是一種網絡的攻擊方式,它在 2007 年曾被列為互聯網 20 大安全隱患之一,也被稱為『One Click Attack』或者 『Session Riding』,通常縮寫為CSRF或者XSRF,是一種對網站的惡意利用。

聽起來像跨站腳本(XSS),但它與XSS非常不同,并且攻擊方式幾乎相左。

XSS利用站點內的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網站。與XSS攻擊相比,CSRF攻擊往往不大流行(因此對其進行防范的資源也相當稀少)和難以防范,所以被認為比XSS更具危險性。

 

責任編輯:武曉燕 來源: 愛笑的架構師
相關推薦

2021-07-21 09:15:27

MySQL數據庫面試

2013-03-08 12:51:03

計算機網絡基礎協議DHCP

2013-05-14 13:02:17

計算機網絡基礎協議

2024-03-28 11:32:38

計算機網絡集線器連接設備

2010-09-02 16:02:45

計算機網絡協議

2010-06-12 16:56:37

2010-09-08 20:45:31

計算機網絡協議

2010-09-08 20:42:09

計算機網絡協議

2021-06-04 14:38:12

網絡通信TCP揮手

2012-05-29 10:18:05

組策略

2021-01-19 05:24:36

ThreadLocal線程編程

2010-06-14 18:58:52

VoIP計算機網絡協議

2010-09-08 20:53:14

WinPCap計算機網絡協議

2010-06-13 15:08:07

計算機網絡協議

2015-05-28 11:09:00

2010-06-14 18:54:57

計算機網絡協議

2010-09-08 21:01:44

計算機網絡協議

2024-09-27 10:11:59

2024-09-10 08:24:24

2011-05-24 10:30:46

服務器虛擬化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日本久久 | 中文字幕在线看 | 国产一区影院 | 亚洲精品免费在线观看 | 巨大荫蒂视频欧美另类大 | 亚洲一区电影 | 天天干干| 手机在线不卡av | 免费中文字幕日韩欧美 | 久久美女网 | www.国产视频 | 亚洲天堂一区 | 国精品一区 | 欧美视频一级 | 欧美一二三四成人免费视频 | 雨宫琴音一区二区在线 | 日韩在线观看 | 国产情侣激情 | 99热.com| 午夜在线 | 日韩在线不卡 | 国产视频福利在线观看 | 99久久国产精 | 成人亚洲| 亚洲欧洲成人av每日更新 | 羞羞视频在线观看免费观看 | 久久99国产精一区二区三区 | 一区二区三区国产 | 欧美一区二区三区在线 | 国内精品久久久久 | 亚洲日韩中文字幕 | 欧美做暖暖视频 | 9999国产精品欧美久久久久久 | 欧美人成在线视频 | 久久久青草婷婷精品综合日韩 | 91久操视频 | 黄色毛片免费看 | 国产精品久久久乱弄 | 在线欧美 | 国产精品视频专区 | 亚洲av毛片成人精品 |