網路筆試面試題整理

2021-09-07 19:55:51 字數 2089 閱讀 9293

給出的一些常見的計算機網路筆試面試題,特整理如下,後期遇到新的再更新

tcp首部格式

udp首部格式

首部字段只有 8 個位元組,包括源埠、目的埠、長度、檢驗和。12 位元組的偽首部是為了計算檢驗和臨時新增的。

tcp/udp特點/區別:

http協議

http(超文字傳輸協議)是乙個基於請求與響應模式的、無狀態的、應用層的協議,常基於

tcp的連線方式,

版本中給出一種持續連線的機制,絕大多數的

web開發,都是構建在

協議之上的

web應用。

http狀態碼

http 協議是無狀態的,主要是為了讓 http 協議盡可能簡單,使得它能夠處理大量事務。

session機制、cookie機制

tcp三次握手、四次揮手

假設 a 為客戶端,b 為伺服器端。

三次握手的原因

第三次握手是為了防止失效的連線請求到達伺服器,讓伺服器錯誤開啟連線。

客戶端傳送的連線請求如果在網路中滯留,那麼就會隔很長一段時間才能收到伺服器端發回的連線確認。客戶端等待乙個超時重傳時間之後,就會重新請求連線。但是這個滯留的連線請求最後還是會到達伺服器,如果不進行三次握手,那麼伺服器就會開啟兩個連線。如果有第三次握手,客戶端會忽略伺服器之後傳送的對滯留連線請求的連線確認,不進行第三次握手,因此就不會再次開啟連線。

以下描述不討論序號和確認號,因為序號和確認號的規則比較簡單。並且不討論 ack,因為 ack 在連線建立之後都為 1。

四次揮手的原因

客戶端傳送了 fin 連線釋放報文之後,伺服器收到了這個報文,就進入了 close-wait 狀態。這個狀態是為了讓伺服器端傳送還未傳送完畢的資料,傳送完畢之後,伺服器會傳送 fin 連線釋放報文。

time_wait

客戶端接收到伺服器端的 fin 報文後進入此狀態,此時並不是直接進入 closed 狀態,還需要等待乙個時間計時器設定的時間 2msl。這麼做有兩個理由:

為什麼需要time_wait?

timewait狀態也稱為2msl等待狀態。

1)為實現tcp這種全雙工(full-duplex)連線的可靠釋放

這樣可讓tcp再次傳送最後的ack以防這個ack丟失(另一端超時並重發最後的fin)。這種2msl等待的另乙個結果是這個tcp連線在2msl等待期間,定義這個連線的插口(客戶的ip位址和埠號,伺服器的ip位址和埠號)不能再被使用。這個連線只能在2msl結束後才能再被使用。

2)為使舊的資料報在網路因過期而消失

每個具體tcp實現必須選擇乙個報文段最大生存時間msl(maximum segment lifetime)。它是任何報文段被丟棄前在網路內的最長時間。

為什麼建立連線是三次握手,而關閉連線卻是四次揮手呢?

這是因為服務端在listen狀態下,收到建立連線請求的syn報文後,把ack和syn放在乙個報文裡傳送給客戶端。而關閉連線時,當收到對方的fin報文時,僅僅表示對方不再傳送資料了但是還能接收資料,我們也未必全部資料都傳送給對方了,所以我們不可以立即close,也可以傳送一些資料給對方後,再傳送fin報文給對方來表示同意現在關閉連線,因此,我們的ack和fin一般都會分開傳送。

osi七層模型:

物理層 the physical layer

資料鏈路層data link layer

網路層the network layer

傳輸層the transport layer

會話層the session layer

表現層the presentation layer

github-網路

筆試面試題

1 昨天參加一公司筆試,給幾道演算法題整懵了,其實也不難,但好久沒有碰演算法,只是有思路,要讓我在這麼短的時間內寫出程式來還是不行。2 這裡將其中一道稍微複雜一點的演算法題寫下來,以此小結。3 4 題目描述 5 將n個雞蛋放入到m個籃子中去 n m 保證每個籃子中至少乙個雞蛋,然後指定乙個數x,要求...

面試題 筆試

題1 有如下資料庫表tab 請用乙個 delete 語句,刪除 value 重複的行,每個 value 只保留 id 最小的一行。delete from tab where id notin select from select min id from tab groupby value a 好像有...

筆試面試題

1.書架上有編號為1 19的19本書,從中拿5本,問5本編號都不相鄰的拿法有多少種?使用隔板法,拿掉5本後剩下14塊板,即有15個空,使用組合15份插5份 c15 5 3003 2.1億個資料取前1萬大的整數 演算法思路 a.把1億個資料分成10000個陣列,b.求出10000個陣列的最大值,儲存到...