2017安卓面試題 計算機網路篇

2021-07-29 12:55:21 字數 4550 閱讀 8156

即將多台計算機通過線路在網路管理協議下實現資源共享和資訊傳遞

名詞定義 

ip: 

ip層接收由更低層(網路介面層例如乙太網裝置驅動程式)發來的資料報 

並把該資料報傳送到更高層—tcp或udp層 

ip資料報中含有傳送它的主機的位址(源位址)和接收它的主機的位址(目的位址)。

tcp: 

tcp是面向連線的通訊協議,通過三次握手建立連線,通訊完成時要拆除連線(四次揮手),由於tcp是面向連線的所以只能用於端到端的通訊。

tcp將它的資訊送到更高層的應用程式,例如telnet的服務程式和客戶程式。應用程式輪流將資訊送回tcp層,tcp層便將它們向下傳送到ip層,裝置驅動程式和物理介質,最後到接收方。

udp: 

udp是面向無連線的通訊協議,udp資料報括目的埠號和源埠號資訊,由於通訊不需要連線,所以可以實現廣播傳送。 

udp通訊時不需要接收方確認,屬於不可靠的傳輸,可能會出現丟包現象,實際應用中要求程式設計師程式設計驗證。

icmp: 

icmp與ip位於同一層,它被用來傳送ip的控制資訊。它主要是用來提供有關通向目的位址的路徑資訊

1. osi與tcp/ip各層的結構與功能,都有哪些協議。

osi開放式系統互聯 tcp/ip傳輸控制協議 

osi模型有7層 tcp/ip模型有5層

osi模型 

(對應tcp/ip網介面層) 

物理層:規定通訊裝置的機械的、電氣的、功能的和過程的特性,用以建立、維護和拆除物理鏈路連線。 

資料鏈路層:傳輸有mac位址的幀以及錯誤檢測功能

******************** 

網路層:(兩個主機之間)為資料報(packets)選擇路由 

傳輸層:(兩個主機的應用程序之間)提供端對端的介面=

***************=== 

(對應tcp/ip應用層) 

會話層:訪問驗證和會話管理等(如伺服器驗證使用者登入) 

表示層:資料格式化,**轉換,資料加密等 

應用層:為作業系統或網路應用程式提供訪問網路服務的介面:檔案傳輸,電子郵件,檔案服務,虛擬終端等

tcp/ip模型 

網路介面層 

網路層:(ip,icmp) 

傳輸層:(tcp,udp) 

應用層:(http,ftp,dns)

2. tcp與udp的區別。

tcp:面向連線,從端到端和可靠的資料傳遞,提高ip環境下的可靠傳輸,流量的控制 

針對可靠性高的應用 

http,dns,ftp等協議應用到

udp:不面向連線,不為ip提供可靠性、 流控或差錯恢復功能 

適用於可靠性要求低、傳輸經濟的應用 

dns等協議應用到

3. tcp報文結構。

4. tcp的三次握手與四次揮手過程,各個狀態名稱與含義,timewait的作用。

三次握手: 

客戶端傳送syn訊息包請求給伺服器,伺服器會返回syn+ack確認的訊息表明已經連上, 

客戶端收到確認訊息會再傳送乙個syn+ack報文,這樣三次握手,成功後就開始分配資源建立連線

為什麼不是兩次握手: 

兩次握手是不可靠的連線 

如果兩次握手,網路延時造成的超時請求,會再次建立乙個新的無效連線,並一直保持,占用資源

四次揮手: 

客戶端傳送中斷連線請求fin報文(表示客戶端不會傳送來資料了),這個時候服務端可能是處於傳送資料過程中,所以服務端傳送ack報文表示自己還沒準備關閉,服務端收到報文進入fin_wait狀態,當服務端傳送資料完畢,向客戶端傳送乙個fin報文,表示可以斷開連線,客戶端再傳送ack報文,若2msl後未響應表示服務端關閉了,客戶端再關閉

自己理解:客戶端斷開:客戶端傳送final請求報文,服務端收到final報文,傳送ack報文給服務端等待資料傳輸完,服務端進入final-wait狀態,服務端資料傳輸完成,向客戶端傳送final報文,自身進入final-wait狀態 

客戶端傳送ack報文確認,之後連線成功斷開連線

四次的目的:防止資料未載入完就斷開的情況

timewait的作用:報文請求的有效等待時間,超過就會從網路中消失

5. 請說出http協議位於tcp/ip模型中的第幾層?為什麼說http是可靠的資料傳輸協議?。

http位於tcp/ip中的應用層,因為http在傳輸層基於tcp協議而tcp協議是面向連線的可靠協議所以http可靠

6. http和https的區別?

https是用ssl加密的。電腦與伺服器之間收發的資訊傳輸將更加安全。 

web伺服器啟用ssl需要獲得乙個伺服器證書並將該證書與要使用ssl的伺服器繫結。 http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。

https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議

要比http協議安全

7. http協議的結構?

請求報文:請求行 - 通用資訊頭 - 請求頭 - 實體頭 - 報文主體

響應報文:狀態行 - 通用資訊頭 - 響應頭 - 實體頭 - 報文主體

7. http請求的完整過程?

http請求的過程,與電腦上訪問乙個網頁大概相同

建立tcp連線 

在http工作開始之前,web瀏覽器首先要通過網路與web伺服器建立連線,該連線是通過tcp來完成的,該協議與ip協議共同構建internet,即著名的tcp/ip協議族,因此internet又被稱作是tcp/ip網路。http是比tcp更高層次的應用層協議,根據規則,只有低層協議建立之後才能進行更高層協議的連線,因此,首先要建立tcp連線,一般tcp連線的埠號是80。

web瀏覽器向web伺服器傳送請求命令 

一旦建立了tcp連線,web瀏覽器就會向web伺服器傳送請求命令。例如:get/sample/hello.jsp http/1.1。

web瀏覽器傳送請求頭資訊 

瀏覽器傳送其請求命令之後,還要以頭資訊的形式向web伺服器傳送一些別的資訊,之後瀏覽器傳送了一空白行來通知伺服器,它已經結束了該頭資訊的傳送。

web伺服器應答 

客戶機向伺服器發出請求後,伺服器會客戶機回送應答, http/1.1 200 ok ,應答的第一部分是協議的版本號和應答狀態碼。

web伺服器傳送應答頭資訊 

正如客戶端會隨同請求傳送關於自身的資訊一樣,伺服器也會隨同應答向使用者傳送關於它自己的資料及被請求的文件。

web伺服器向瀏覽器傳送資料 

web伺服器向瀏覽器傳送頭資訊後,它會傳送乙個空白行來表示頭資訊的傳送到此為結束,接著,它就以content-type應答頭資訊所描述的格式傳送使用者所請求的實際資料。

web伺服器關閉tcp連線 

一般情況下,一旦web伺服器向瀏覽器傳送了請求資料,它就要關閉tcp連線,然後如果瀏覽器或者伺服器在其頭資訊加入了這行**:connection:keep-alive 

tcp連線在傳送後將仍然保持開啟狀態,於是,瀏覽器可以繼續通過相同的連線傳送請求。保持連線節省了為每個請求建立新連線所需的時間,還節約了網路頻寬。

7. http怎麼處理長連線?

在http/1.0中,預設使用的是短連線。也就是說,瀏覽器和伺服器每進行一次http操作,就建立一次連線,但任務結束就中斷連線。 

http/1.1起,預設使用長連線,用以保持連線特性。使用長連線的http協議,會在響應頭有: connection:keep-alive。keep-alive不會永久保持連線,它有乙個保持時間,可以在不同的伺服器軟體(如apache)中設定這個時間。實現長連線要客戶端和服務端都支援長連線。

8. 電腦上訪問乙個網頁,整個過程是怎麼樣的?

1)瀏覽器向dns伺服器請求解析該url中的網域名稱所對應的ip位址; 

2)解析出ip位址後,根據該ip位址和預設埠80,和伺服器建立tcp連線; 

3)瀏覽器發出讀取檔案(url中網域名稱後面部分對應的檔案)的http請求,該請求報文作為tcp三次握手的第三個報文的資料傳送給伺服器; 

4)伺服器給出相應,把對應的html文字傳送給瀏覽器; 

5)釋放tcp連線; 

6)瀏覽器將該文字顯示出來。

9. cookie與session的作用於原理?

cookie機制:客戶端保持狀態。「set-cookie」域;cookie的內容主要包括:名字,值,過期時間,路徑和域。瀏覽器檢查所有儲存的cookie,如果某個cookie所宣告的作用範圍大於等於將要請求的資源所在的位置,則把該cookie附在請求資源的http請求頭上傳送給伺服器。

session機制:伺服器端保持狀態。 當程式需要為某個客戶端的請求建立乙個session時,伺服器首先檢查這個客戶端的請求裡是否已包含了乙個session標識(稱為session id),如果已包含則說明以前已經為此客戶端建立過session,伺服器就按照session id把這個session檢索出來使用(檢索不到,會新建乙個);如果客戶端請求不包含session id,則為此客戶端建立乙個session並且生成乙個與此session相關聯的session id,session id的值應該是乙個既不會重複,又不容易被找到規律以仿造的字串,這個session id將被在本次響應中返回給客戶端儲存。

計算機網路面試題

tcp udp區別以及tcp如何保證傳輸可靠性 tcp是基於連線的協議,udp是面向非連線的協議 tcp傳輸可靠,udp傳輸不可靠 tcp的可靠性是通過順序編號和確認 ack 來實現的。tcp在開始傳送乙個段時,首先將該段插入到傳送佇列之中,同時啟動時鐘。其後,如果收到了接受端對該段的ack資訊,就...

計算機網路面試題

常見題 1 osi開放式網際網路參考模型有哪些組成?2 客戶端傳給伺服器時經過tcp ip的四層模型?3 從輸入 到獲得頁面的過程?4 cookie作用是啥?和session區別是啥?tcp ip 1 什麼是tcp協議?什麼是udp協議?2 tcp udp區別?3 tcp報文頭有哪些組成?4 udp...

計算機網路面試題

傳輸層網路層 應用層 3 http協議 報文格式 請求報文 響應報文 請求頭各種字段 響應頭各種字段 http狀態碼。4 https協議 詳細握手過程 各種演算法 摘要演算法 數字簽名 數字證書的原理與過程 http與https 輸入乙個url到瀏覽器返回頁面發生了什麼 網易 cookie與sess...