一道網路相關面試題

2021-06-18 20:36:06 字數 1370 閱讀 8526

問:從客戶端向服務端傳送三個包,在

tcp和

udp協議的情況下,服務端最終會收到幾個包? 答:

網路結構圖如下所示:

、使用udp

協議:(1)

在過程(

1)中,

client

向buffer

發包時,

buffer

會立即返回成功。如果

client

向buffer

發包的速度過快,雖然

buffer

立即返回了成功,但

buffer

可能因為空間已滿,將包丟掉,而不傳送到網路上。

(2)在過程(

2)中,需要考慮

mtu的大小。如果

udp的包大於

mtu大小,則可能會被完全丟掉,也可能被分拆成多個包。如果被分拆,到過程(

3)時,會被重新組成三個包;網路傳輸過程中,可能會丟包。

(3)如果udp

包設定了禁止分片的

df標誌位,當

udp包大於

mtu大小時,會被直接丟掉。

(4)udp沒有重傳機制,網路過程中丟掉的包,就再也找不回來了。

(5)過程(4

),從buffer

到服務端,如果接收的資料來得過快,接收

buffer

也可能丟掉部分包。

(6)udp基於資料報的方式進行傳輸。如果傳送、網路傳輸、接收過程都不丟包,雖然網路傳輸過程中可能被分包,拆成多個包,但服務端收到的時侯,一定還是三個包。

(7)基於udp

傳輸時,服務端可能收到

0 <= x <= 3

個包。可能為

0,但不會大於3。

2 使用

tcp協議:

(1)過程(1

)不會丟包。

(2)過程(4

)不會丟包。

(3)過程(2

)中,考慮

mtu的大小,如果

tcp包小於

mtu,則有可能多個包組成乙個包進行傳輸,如果

tcp包大於

mtu大小,會自動分片,被拆成幾個包。

(4)tcp基於流的方式進行傳輸。到過程(

4)時,分片或組合後的包不會還原成原來的三個包。

(5)基於tcp

傳輸時,

0 < x

,即一定能收到包,資料也一定能收全。

(6)當出現組包(

tcp包

< mtu

)時,x < 3。

(7)當出現分片(

tcp包

> mtu

)時,x > 3。

(8)與

mtu相等時,

x = 3。

一道面試題

一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...

一道面試題

前些時候在找工作,就在準備結束此次找工作歷程的時候,去了一家公司面試,去了之後技術經理直接帶到一台電腦旁,給了一張紙條,上面是這樣的題目 用c或c 來實現 1 建立一棵樹,該樹的深度是隨機的,每個節點的位元組點數是隨機的。2 給每個節點分配一段隨機大小的記憶體空間,給每個節點賦乙個隨機數。3 遍歷這...

一道面試題

如果n為偶數,則將它除以2,如果n為奇數,則將它加1或者減1。問對於乙個給定的n,怎樣才能用最少的步驟將它變到1。例如 n 61 n 60 n 2 30 n 2 15 n 16 n 2 8 n 2 4 n 2 2 n 2 1 public class myclass public static vo...