Java面試-計算機網絡常見問題

一、4/7層模型

1.1 OSI模型

在這裏插入圖片描述
工作原理是:
在數據的實際傳輸中,發送方將數據送到自己的應用層,加上該層的控制信息後傳給表示層;表示層如法炮製,再將數據加上自己的標識傳給會話層;以此類推,每一層都在收到的數據上加上本層的控制信息並傳給下一層;最後到達物理層時,數據通過實際的物理媒體傳到接收方。接收端則執行與發送端相反的操作,由下往上,將逐層標識去掉,重新還原成最初的數據。由此可見,數據通訊雙方在對等層必須採用相同的協議,定義同一種數據標識格式,這樣纔可能保證數據的正確傳輸。
https://blog.csdn.net/weixin_39569611/article/details/81879266

1.2 TCP/IP模型

OSI參考模型雖然是ISO給出的,但是ISO在推進OSI協議標準化的進程上是比較緩慢的。而TCP/IP協議的標準化進程是相當快速的,因此現階段的實際標準是TCP/IP協議。儘管TCP/IP協議與OSI有所差異,但是仍舊與OSI參考模型有一些對應關係。
在這裏插入圖片描述
https://blog.csdn.net/zy010101/article/details/86492773

二、TCP協議

2.1 三次握手與四次揮手

https://blog.csdn.net/qq_38950316/article/details/81087809

2.2 流量控制和擁塞控制

https://blog.csdn.net/dangzhangjing97/article/details/81008836
如果只發送/接收一個數據包,肯定不會亂序,但是吞吐量過低
改進:一次發送多個數據包再一起確認,但是發多少呢?按照順序ack,丟包:超時重傳
在這裏插入圖片描述

2.3 KeepAlive

https://blog.csdn.net/weixin_33690367/article/details/88203929

三、UDP協議

3.1 特點

(1)UDP是無連接的傳輸層協議;
(2)UDP使用盡最大努力交付,不保證可靠交付;
(3)UDP是面向報文的,對應用層交下來的報文,不合並,不拆分,保留原報文的邊界;
(4)UDP沒有擁塞控制,因此即使網絡出現擁塞也不會降低發送速率;
(5)UDP支持一對一 一對多 多對多的交互通信;
(6)UDP的首部開銷小,只有8字節.

3.2 與TCP的區別

1、TCP面向連接(如打電話要先撥號建立連接);UDP是無連接的,即發送數據之前不需要建立連接

2、TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重複,且按序到達;UDP盡最大努力交付,即不保證可靠交付

Tcp通過校驗和,重傳控制,序號標識,滑動窗口、確認應答實現可靠傳輸。如丟包時的重發控制,還可以對次序亂掉的分包進行順序控制。

3、UDP具有較好的實時性,工作效率比TCP高,適用於對高速傳輸和實時性有較高的通信或廣播通信。

4.每一條TCP連接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通信

5、TCP對系統資源要求較多,UDP對系統資源要求較少。

四、HTTP協議

常見面試題

4.1 協議

https://blog.csdn.net/chenzujie/article/details/8529674

4.2 UrlEncode

https://blog.csdn.net/xiaozhu0301/article/details/49208017

4.3 狀態碼

https://blog.csdn.net/t_332741160/article/details/81408597

4.4 請求類型

https://blog.csdn.net/u012813201/article/details/70210812

4.5 HTTPS

https://blog.csdn.net/iitvip/article/details/8522294

4.6 HTTP2

HTTP、HTTPS、HTTP2總結

4.7 QUIC

https://blog.csdn.net/Tencent_TEG/article/details/79158266

五、面試常見問題

5.1 TCP如何保證可靠傳輸

  • 將數據分割成適合發送的數據塊
  • 對數據包進行編號
  • 校驗和
  • 丟棄重複數據
  • 流量控制(滑動窗口)
  • 擁塞控制
  • 停等協議

5.2 爲什麼UDP有時比TCP更有優勢?

UDP以其簡單、傳輸快的優勢,在越來越多場景下取代了TCP,如實時遊戲。

(1)網速的提升給UDP的穩定性提供可靠網絡保障,丟包率很低,如果使用應用層重傳,能夠確保傳輸的可靠性。

(2)TCP爲了實現網絡通信的可靠性,使用了複雜的擁塞控制算法,建立了繁瑣的握手過程,由於TCP內置的系統協議棧中,極難對其進行改進。

採用TCP,一旦發生丟包,TCP會將後續的包緩存起來,等前面的包重傳並接收到後再繼續發送,延時會越來越大,基於UDP對實時性要求較爲嚴格的情況下,採用自定義重傳機制,能夠把丟包產生的延遲降到最低,儘量減少網絡問題對遊戲性造成影響。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章